In realtà no, perchè se non specifichi nel dump il nome del database che vuoi usare, mysql < nomefile non funziona, manca nel file "use nomedatabase;"
Serve, come ho indicato,
mysql -uroot -ppassword nomedatabase < nomefile
in questo caso l'utente mysql è root con password... password
In alternativa dei fare
mysqldump -uroot -ppassword --databases nomedb > qualcosa
Questo inserisce nel file use nomedb
Infine se vuoi eliminare le tabelle già esistenti ti servirà
--add-drop-database.
Questo dipende dalla necessità di eliminare lo schema prima del restore.
Se non lo elimini vengono cancellate, ricreate e popolate le tabelle, ma quelle già presenti rimangono.
Esempio.
Su windows hai 3 tabelle, pippo,pluto paperino
Le trasferisci su Linux avrai le 3 tabelle pippo, pluto e paperino.
Ora cancelli su Windows la tabella paperino.
Se non metti --add-drop-database (o parimenti non cancelli e ricrei lo schema a mano) su Linux avrai sempre pippo,pluto e paperino
Quindi in sintesi
mysqldump -uroot -ppassword --add-drop-database --databases nomedb > qualcosa
se vuoi poter fare
mysql -uroot -ppassword <qualcosa per il restore.
Se il db è in uso puoi mettere anche --opt (inutile se invece non ci sono utenti che lo utilizzano durante la fase di dump).
PS il file che viene generato NON contiene query, bensì statement DML e DDL

Rispondi quotando