Comment utiliser mysqlimport pour lire le résultat de mysqldump -- bases de données

j'ai réussi à vider toute une base de données MySQL en utilisant

mysqldump --databases

génération d'une belle .fichier txt. Cependant, je ne vois pas comment lire tout le fichier de nouveau dans MySQL en une seule fois; mysqlimport semble vouloir juste une table à la fois.

21
demandé sur Charles Anderson 2010-02-19 20:08:04

3 réponses

Lorsque vous avez généré un fichier (disons db-dump.sql)mysqldump, vous pouvez les importer dans votre base de données avec le mysql commande :

mysql --user=XXX --password=XXX --host=YOUR_HOST DATABASE_NAME < db-dump.sql



Et, si vous ne voulez pas le mot de passe d'apparaître dans une commande, vous pouvez utiliser :

mysql --user=XXX -p --host=YOUR_HOST DATABASE_NAME < db-dump.sql



En tant que sidenote, si vous voulez copier un DB à un autre, vous n'avez pas besoin d'utiliser un fichier, et pouvez simplement directement pipe la sortie de mysqldumpmysql :

mysqldump --user=XXX --password=XXX --host=SOURCE_HOST SOURCE_DB | mysql --user=XXX --password=XXX --host=DESTINATION_HOST DESTINATION_DB

(il devrait même être plus rapide, car vous n'utilisez pas un fichier temporaire qui réside sur le disque)

49
répondu Pascal MARTIN 2010-02-19 17:28:26

je le fais souvent:

mysqldump -u username -p databasename > dump.sql

charger:

mysql -u username -p  targetdatabasename < dump.sql

Switch -p indique la base de données vous invite à entrer le mot de passe pour l'utilisateur username une fois la commande lance.

Votre question est probablement double.

13
répondu Evgeny 2010-02-19 17:22:59

vous pouvez simplement utiliser 'source' dans le client mysql:

source dumpfile.sql

Ou directement en ligne de commande:

mysql -u user -p password database < source dumpfile.sql

c'est parce que le résultat de mysqldump est juste un fichier SQL qui peut être exécuté via mysql comme d'habitude.

6
répondu Joe 2010-02-19 17:13:02