23

我已经使用成功转储了整个 MySQL 数据库

mysqldump --databases

生成一个不错的 .txt 文件。但是,我看不到如何一次将整个文件读回 MySQL;mysqlimport 似乎一次只需要一张表。

4

3 回答 3

57

当您使用 生成一些文件(例如db-dump.sqlmysqldump,您可以使用以下命令将其导入其他数据库mysql

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


而且,如果您不希望密码出现在命令中,您可以使用:

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


作为旁注,如果要将一个数据库复制到另一个数据库,则不需要使用文件,只需将输出直接通过管道mysqldump传输到mysql

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

(它甚至应该更快,因为您没有使用驻留在磁盘上的临时文件)

于 2010-02-19T17:28:26.187 回答
14

我经常这样做:

mysqldump -u username -p databasename > dump.sql

装载:

mysql -u username -p  targetdatabasename < dump.sql

Switch指示数据库在命令启动-p后提示您输入用户的密码。username

你的问题可能是重复的。

于 2010-02-19T17:11:16.810 回答
6

您可以在 mysql 客户端中使用“源”:

source dumpfile.sql

或者直接从命令行提供:

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

这是因为 mysqldump 的结果只是一个 SQL 文件,可以像往常一样通过 mysql 运行。

于 2010-02-19T17:13:02.500 回答