如何使用命令提示符恢复由MySQLDump生成的SQL文件

45
我有一个由MySQLDump生成的SQL文件。如何通过命令提示符进行还原?
6个回答

75

运行以下命令(如果mysql可执行文件不在您的PATH中,首先进入MySQL二进制文件安装的目录,例如\mysql\bin):

mysql -u username -ppassword databasename < file.sql
(请注意,在 -p 和密码之间没有空格)
或者,如果文件是gzipped(像我的备份大部分都是)那么可以像这样做:
gunzip file.sql.gz | mysql -u username -ppassword databasename

在某些系统上,可能需要向 gunzip 命令添加 -c 标志(如下所示,强制其输出到标准输出):

gunzip -c file.sql.gz | mysql -u username -ppassword databasename

3
如果你在远程进行任何操作,只需添加 --host 参数即可使用这个功能。 - yurisich

50
  1. 使用命令提示符进入mysql的bin目录
  2. 登录mysql
  3. 使用文件参数运行source命令

示例:

cd C:\mysql\bin
mysql -u root -p
mysql> source c:\myfile.sql

1
如果你的系统正常,也就是MySQL bin目录在PATH中,那么你就不必进入MySQL bin目录。 - icktoofay
我正在使用普通的窗口命令提示符。我尝试了这个命令,但没有结果也没有错误。 C:\MySQL\MySQL Server 5.0\bin>mysql -uroot -ppassword mysql > source d:\admindb
aar12.sql
- Anuya
好的,在第三步中,不要写“mysql >” :) - Xorty
1
我没有收到任何错误。但是当我在查询浏览器中查看时,没有更新。手动在查询浏览器中执行脚本时,脚本运行正常。我尝试在命令提示符中执行以下命令:C:\MySQL\MySQL Server 5.0\bin>mysql -uroot -ppassword source d:\admindb\AAR12.sql - Anuya
我的 .sql 文件看起来是编码的(或者以二进制形式存在)。因此,上述方法会产生很多错误,是否有任何特定的标志需要使用? - Chankey Pathak
如何在使用上述命令进行还原时保留注释? - Himalaya Garg

9
$ mysql database < myfile.sql

或者

$ mysql database
mysql> source myfile.sql

6
语法如下:
mysql database_name < file.sql

请参阅:使用mysql批处理模式。 (链接)

我正在使用普通的窗口命令提示符。我尝试了这个命令,但没有结果也没有错误...... C:\MySQL\MySQL Server 5.0\bin>mysql -uroot -ppassword mysql > source d:\admindb\ aar12.sql - Anuya
语法就是我上面写的那样。你在那里所做的是将mysql命令的输出重定向到你工作目录中的一个名为source的文件中。(你的重定向箭头方向错了,应该是 <,而且你有太多的参数)。 - Seth

4
假设你要导入/home/abc.sql文件 请运行以下命令:
cd /home    
mysql -u root -p

如果表不存在:
mysql> create database abc;

现在使用数据库abc,并导入abc.sql
mysql> use abc;
mysql> set names utf8;
mysql> source abc.sql;

1

在MySQL命令提示符中,键入以下内容

SOURCE file.sql

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接