在命令行从一个文件还原多个MySQL数据库?


13

我已经使用phpMyAdmin将所有数据库导出到文件中。

不幸的是,我的目标系统中没有可用的phpMyAdmin。

我应该如何使用一行命令一次恢复所有这些?


1
您看过文件了吗?它应该/可以包含用于根据需要创建和切换到数据库的命令。
汤姆·雷格纳

是的,已创建数据库,然后使用USE database_name命令选择了它们。
smhnaji 2012年

那么Unni和laurents的答案是正确的。
汤姆·雷格纳

Answers:


18

为什么不将所有文件合并为一个文件并使用导入/还原

mysql -u username -p < dump.sql

使用创建一个文件

mysqldump -u username -p --all-databases > dump.sql

OP已经有一个文件,他需要还原这些文件,这样我想他就不能再转储它们了。
劳伦特(Larent)

@laurent是的。使用mysql -u username -p < dump.sql将加载多个mysql数据库。
devav2 2012年

是的,肯定会
劳伦特(Larent)2012年

2
它对我没有用。它说我需要选择一个数据库
Aryeh Armon

3

如果您将许多数据库备份到1个文件,我想您将create database语句备份在同一文件中。如果不是,您只需要在适当的位置将create databaseand use database语句添加到文件中即可。

之后,将文件加载到mysql的命令是:

mysql -p < sqlfile.sql

-p 要求输入密码。

-u username如果需要使用其他用户,则可以使用。


1

mysql命令恢复sql文件为:

mysql DATABASE_NAME < SQL_FILENAME.sql

首先确保该文件是sql。如果以gz文件扩展名结尾,则需要使用以下命令解压缩:

gunzip SQL_FILE.sql.gz

1
-1。就像我在上面说的那样,文件中存储了多个数据库,我希望所有数据库都立即恢复。
smhnaji 2012年

您可以分别在phpmyadmin中导出每个数据库并在源服务器上将其还原吗?或使用sed或awk等linux流编辑器将其拆分为不同的文件。
乌尼(Unni)2012年

1
无需,他可以从一个文件导入所有数据库
laurent 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.