Pagina 1 di 1

MySQL creare un database....

Inviato: sab 25 mar 2006, 7:45
da salbutamolo
Ciao a tutti,
grazie all'ottimo slakware for dummies ho provveduto ad avviare al boot mysql; adesso devo creare il mio database, che verrà poi usato da un altro software. Però ho un pochino di confusione in testa; da man mysql leggo questo:
shell> mysql db_name

Or:

shell> mysql --user=user_name --password=your_password db_name

Then type an SQL statement, end it with ';', \g, or \G and press Enter
Non capisco se digitando

Codice: Seleziona tutto

mysql db_name
ottengo un database acessibile a tutti, invece se uso il comado successivo ne ottengo uno con accesso condizionato. Un'altra domanda...se creo un database con password e affini lo user deve essere uno user del sitema oppure posso crearne uno "interno" a MySQL? E infine, tutta la procedura richiede privilegi di root oppure posso bellamente creare un database nella mia home e quindi procedere con privilegi da user? Scusate la banalità delle domande ma in materia di database sono moooooooolto ignorante :-(
Have a nice day

Inviato: sab 25 mar 2006, 8:14
da aschenaz
No, gli utenti di mysql non hanno niente a che fare con quelli di sistema (volendo puoi farli coincidere).
Ti consiglio la lattura di

Codice: Seleziona tutto

man mysqladmin
Imparare i comandi da shell è una buona cosa, ma dopo, se vuoi avere una maggiore comodità, ti consiglio di scaricarti un manager, tipo phpmyadmin: ti semplificherà la vita...
Ciao,
nino

Inviato: sab 25 mar 2006, 10:08
da MAT
Gli utenti di mySQL sono distinti dagli utenti del sistema. Non puoi creare un database nella tua home, infatti non stabilisci tu dove e come vengono salvate su disco le informazioni contenute in un database. Questo lo fa per te il DBMS (DataBase Management System).

Per interagire con i database tradizionali è ormai diffuso l'utilizzo del linguaggio SQL. Anche per la creazione di un database si usa quindi tale linguaggio usando il comando

Codice: Seleziona tutto

CREATE DATABASE nome_db
L'accesso degli utenti ad un database e le operazioni che possono effettuare vengono stabiliti da una politica di permessi, che si assegnano con il comando GRANT. Puoi avere permessi di creazione di tabelle, rimozione, modifica della struttura, lettura di record, rimozione, modifica di record, e anche il permesso di passare questi permessi ad altri utenti (WITH GRANT OPTION).

Ti consiglio una lettura a

Codice: Seleziona tutto

man mysql
e

Codice: Seleziona tutto

man mysqladmin
come ti ha consigliato anche ninobi e poi cerca qualche buon manuale di SQL. Una piccola nota: il linguaggio SQL non è propriamente "standard", ovvero ogni DBMS utilizza una sua variante di SQL che può differire leggermente dagli altri. Le differenze sono comunque minime.

Inviato: sab 25 mar 2006, 13:29
da salbutamolo
Ciao a tutti,
grazie delle risposte, sempre molto illuminati. Tuttavia ho un problema che credevo di avere risolto in fatti mysql si schianta al boot restituendomi questo errore:
Starting mysqld daemon with databases from /var/lib/mysql
STOPPING server from pid file /var/run/mysql/mysql.pid
060325 13:14:50 mysqld ended
Ora vi descrivo cosa ho fatto per attivare il servizio al boot:

1) Ho rinominato uno dei files my.*.conf in my.conf e l'ho schiaffato nella directory /etc.

2) Una volta acqusiti privilegi di root ho laciato il comando

Codice: Seleziona tutto

mysql_install_db
L'operazione è andata a buon fine, credo, e il sistema mi ha consigliato di effettuare le seguenti operazioni
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h nautilus password 'new-password'
See the manual for more instructions
Cosa che non ho ancora fatto perchè volevo vedere se mysql si avviava al boot.

3) La directory /var/lib/mysql ha permessi di lettura e scrittura per l'utente mysql e di lettura per il gruppo mysql. Nessuno degli utenti di sistema fa parte del gruppo mysql, root escluso naturalmente!

4) Infine tramite il buon pkgtool ho selezionato l'attivazione di mysql al boot, ma come detto in precedenza l'operazione fallisce. E' ovvio che sbaglio qualcosa, ma non riesco a capire cosa? :-(
Have a nice day

Inviato: sab 25 mar 2006, 13:53
da albatros
Come introduzione è in corso di pubblicazione una serie di articoli su mysql su linux pro, solo che sono già alla 5° lezione (mi pare).
Ho comprato poi tempo fa un paio di libri editi da apogeo "sql" e "mysql", che costano poco (li ho pagati 7,20 euro l'uno) e che, per un uso non professionale come è quello che ne faccio io, sono abbastanza chiari e funzionali.
C'è anche una parte dedicata alla gestione degli utenti e all'installazione su linux.
Anche in rete trovi una buona documentazione.

Inviato: sab 25 mar 2006, 14:10
da salbutamolo
Ciao a tutti,
ho fatto una scoperta curiosa, se tento digito mysql al prompt la console mi restituisce questo errore:

Codice: Seleziona tutto

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2)
Effettivamente in /var/run/mysql non c'è nessun file mysql.sock. Credo che tutto il problema sia imperniato su questo. Voi che ne pensate? Have a nice day

Inviato: sab 25 mar 2006, 14:25
da albatros
Come hai configurato my.cnf ?

Inviato: sab 25 mar 2006, 14:30
da MAT
salbutamolo ha scritto:Ciao a tutti,
ho fatto una scoperta curiosa
Mica tanto curiosa, l'hai detto tu che il server mySQL non si avvia. Pertanto è chiaro che il comando mysql non riesce a collegarcisi!

Inviato: dom 26 mar 2006, 9:29
da salbutamolo
Ciao a tutti,
Mica tanto curiosa, l'hai detto tu che il server mySQL non si avvia. Pertanto è chiaro che il comando mysql non riesce a collegarcisi
Trovo curioso che non venga creato quel file; ora se la presenza del file è strettamente legata alla riuscita del collegamento a mysql chiedo scusa....l'avevo detto che sono ignotante in materia mysql :-)
Come hai configurato my.cnf ?
Come descritto nell'ottimo slackware for dummies mi sono limitato a rinominare il file my-medium.cnf in my.cnf. Have a nice day

Inviato: mar 28 mar 2006, 23:23
da albatros
Parlo da ignorante e oltreutto mysql l'ho installato seguendo altre istruzioni e senza usare il pacchetto slack, però te la butto lì:
in my-medium.cnf, che hai copiato in /etc/my.cnf, il socket è /tmp/mysql.sock, non /var/run/mysql/mysql.sock
Mysql a me funziona, /var/run/mysql non l'ho neanche messa, /tmp/mysql.sock c'è, creato nel momento in cui ho lanciato safe_mysqld...

Ciao

Gabriele

Inviato: mer 29 mar 2006, 21:42
da salbutamolo
Ciao a tutti,
ho risolto il problema....per la verità mi vergogno come un cane a dire sta cosa però la dico lo stesso :-)
Andava tutto bene tranne che avevo sbagliato a chmoddare /var/lib/mysql e quindi il demone si schiantava all'avvio. Sono un po' stanco in questo periodo....non lapidatemi troppo :-(
Have a nice day