如何使用mysqlimport读取mysqldump --databases的结果

Cha*_*son 23 mysql mysqldump mysqlimport

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

mysqldump --databases
Run Code Online (Sandbox Code Playgroud)

生成一个很好的.txt文件.但是,我看不出如何一次性将整个文件读回MySQL; mysqlimport似乎一次只需要一个表.

Pas*_*TIN 55

当您使用生成某个文件(例如db-dump.sql)mysqldump,可以使用以下mysql命令将其导入到其他数据库:

mysql --user=XXX --password=XXX --host=YOUR_HOST DATABASE_NAME < db-dump.sql
Run Code Online (Sandbox Code Playgroud)


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

mysql --user=XXX -p --host=YOUR_HOST DATABASE_NAME < db-dump.sql
Run Code Online (Sandbox Code Playgroud)


作为旁注,如果要将一个DB复制到另一个DB,则不需要使用文件,只需将输出直接mysqldump传递给mysql:

mysqldump --user=XXX --password=XXX --host=SOURCE_HOST SOURCE_DB | mysql --user=XXX --password=XXX --host=DESTINATION_HOST DESTINATION_DB
Run Code Online (Sandbox Code Playgroud)

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

  • 那么,这就解释了为什么mysqlimport无效. (3认同)

Evg*_*eny 14

我经常这样做:

mysqldump -u username -p databasename > dump.sql
Run Code Online (Sandbox Code Playgroud)

载入:

mysql -u username -p  targetdatabasename < dump.sql
Run Code Online (Sandbox Code Playgroud)

切换-p指示数据库username在命令启动时提示您输入用户的密码.

你的问题可能是重复的.


小智 6

你可以在mysql客户端中使用'source':

source dumpfile.sql
Run Code Online (Sandbox Code Playgroud)

或直接从命令行提供:

mysql -u user -p password database < source dumpfile.sql
Run Code Online (Sandbox Code Playgroud)

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