Un blog serve anche a prendere appunti per non reinventare ogni volta l'acqua calda. Quindi niente di eclatante, ma una semplice panoramica sui due comandi da shell per eseguire il dump di un database mysql e per ripristinarlo altrove. Tipica situazione se volete pubblicare un sito sviluppato in locale e avete, off course, accesso alla shell.
Eseguiamo il dump :
mysqldump nomedb -u nomeutente -p > dumpdb.sql
Portiamoci il file "dump.sql" dove ci pare e ricreiamo il DB
mysql -u nomedb -p nomeutente < dumpdb.sql
mysql --one-database nomedb < dumpdb.sql -u nomeutente -p
Ma voglio allargarmi, siccome oggi ho letto su un semplice articoletto su come modificare la password di root, mi permetto di accodarlo qui con uno spudorato cut & paste per (mia) futura memoria.
mysqladmin permette di effettuare alcune operazioni di amministrazione del server MySQL. Passando l’opzione password, seguita dalla nuova password, sarà possibile impostare in un solo passaggio la nuova password scelta. Per effettuare l’operazione dovete eseguire da terminale:
mysqladmin -u root password
mysqladmin -u root password
Con il client mysql potete eseguire le operazioni comuni che si effettuano su un database ed inoltre anche le operazioni di amministrazione. Per entrare nel client dovete digitare da terminale:
mysql -u root
SET PASSWORD FOR ‘root’@'localhost’ = PASSWORD(’nuovapassword’);
Oltre al metodo descritto prima, si può utilizzare il client mysql per aggiornare i dati nelle tabelle di sistema mediante il comando UPDATE. Bisogna come prima accedere alla shell di mysql digitando da terminale:
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD(’nuovapassword’) WHERE User = ‘root’;
mysql> FLUSH PRIVILEGES;
Per creare un utente in MySQL è necessario accedere da root (o da altro utente che ha i privilegi di creazione degli utenti), per farlo aprite un terminale e digitate:
mysql -uroot -p
A questo punto bisognerà creare l’utente e dare i permessi sul database, ricordate di sostituire a il nome del db su cui dare i permessi, sostituire a il nome dell’utente da creare ed infine in la password da assegnare all’utente. Per fare ciò digitate nella shell di MySQL:
GRANT ALL PRIVILEGES ON .* TO ‘’@'localhost’ IDENTIFIED BY ‘’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON fatture.* TO ‘ragioniere’@'localhost’ IDENTIFIED BY ‘contabile’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO ‘’@'localhost’ IDENTIFIED BY ‘’ WITH GRANT OPTION;
Quanto abbiamo visto fin’ora permette all’utente creato di accedere solo da locale, però è possibile scegliere un altro host, sostituendo nelle stringhe riportate sopra, alla voce “localhost” l’indirizzo da cui l’utente può eccedere.
In alternativa è possibile far accedere l’utente da un qualsiasi host, sostituendo alla voce “localhost” il simbolo “%”. Il comando da digitare nella shell di MySQL sarà quindi:
GRANT ALL PRIVILEGES ON .* TO ‘’@'%’ IDENTIFIED BY ‘’ WITH GRANT OPTION;
Questo è tutto, notate che questa è una breve guida con delle opzioni abbastanza basilari, MySQL permette una gestione degli utenti molto più complessa e avanzata, ma per questo vi rimando ad un futuro articolo.
Byez ;)
http://linux.cividini.org/blog/2008/07/mysql-dump-restore-password-root-...
Grazie della citazione :)
Grazie mille spiegazione molto utile:)
mysql -u nomedb -p nomeutente < dumpdb.sql
sono invertiti...
deve essere:
mysql -p nomedb -u nomeutente < dumpdb.sql
Grazie, corretto.
Buongiorno a tutti, in merito alla prima parte della guida, per quanto riguarda il "restore" del db da shell, vorrei sapere come poter creare il db qualora non esistesse.
Sto sviluppando un sw in c# che permette la sincronizzazione dei server db e la gestione delle backup e restore.
@AmboSE87
Se usi mysqldump tra le prime righe del dump vedrai la stringa
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `nome_db` /*!40100 DEFAULT CHARACTER SET utf8 */;
Se la modifichi togliendo i commenti in modo che diventi
CREATE DATABASE IF NOT EXISTS `nome_db` /*!40100 DEFAULT CHARACTER SET utf8 */;
quando eseguirai il restore si comporterà esattamente come desideri.
Come nota, una funzionalità simile esiste per le singole tabelle:
DROP TABLE IF EXISTS `nome_tabella`;
CREATE TABLE `nome_tabella` e bla bla bla...
I feel that is among the most vital information for
me. And i'm happy studying your article. But want to
commentary on few basic issues, The site style is wonderful, the articles is really
excellent : D. Just right process, cheers
Pretty section of content. I just stumbled upon your site and in accession capital to assert that I get in fact enjoyed
account your blog posts. Any way I will be subscribing in your augment and even I
achievement you get right of entry to persistently rapidly.
What i don't realize is actually how you are no longer actually a lot
more smartly-preferred than you might be right now. You're so intelligent.
You recognize thus significantly with regards to this matter,
produced me individually consider it from so many varied angles.
Its like men and women don't seem to be fascinated unless it is one thing to do with Girl gaga!
Your own stuffs great. At all times maintain it up!
You really make it seem so easy with your presentation but
I find this matter to be actually something which
I think I would never understand. It seems too complex and extremely broad for me.
I'm looking forward for your next post, I will
try to get the hang of it!
nice website dude
ref="http://camsex-kostenlos.com">Camsex kostenlos
Saved as a favorite, I like your blog!