13

我正在尝试使用 .sql.gz 文件恢复 mysql 数据库。我正在使用 mySql 控制台运行命令,因为文件大小对于 phpMyAdmin 来说太大了。我正在使用的命令是

gunzip C:/Vik/Gya/Source/beed_2013-04-06.sql.gz | mysql -u root -p bd

其中 root 是用户 ID。root 没有密码。bd 是我要导入的数据库。mysql 在我的本地机器(Windows 8)上运行。我有一个 wamp 设置。

这是我得到的错误:

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以'gunzip C:/Vikalp/Gyankosh/Source/beedictionary_2013-04-06.sql | mysql -u root -p'在第 1 行附近使用正确的语法。

4

6 回答 6

69

您需要 -c 选项(输出到标准输出)

gunzip -c xxx.sql.gz |mysql -u root -p
于 2013-07-29T14:21:19.197 回答
23

虽然 Kisoft 的答案是正确的,但我只是想指出您不需要 -c,它可以正常工作。此命令将解压缩数据库转储并同时将其导入数据库。

gunzip < output.sql.gz | mysql -u <username> -p<password> <database>
于 2014-11-20T14:35:09.487 回答
4

如果您键入gunzip并收到一个抱怨 gunzip 的 SQL 语法错误,则您已经登录到 mysql 控制台。mysql 控制台不是通用外壳!

您使用的是 Windows,我怀疑您尚未在计算机中安装 gzip(它不是内置实用程序)。这是一个经典的 Unix 工具,但您可以找到适用于Windows的二进制文件。安装它并通过一些调整运行您的原始命令:

  1. 确保您处于 Windows 提示符 ( C:\>)

  2. 将 gunzip 结果重定向到标准输出而不是文件:

    gunzip --stdout C:/Vik/Gya/Source/beed_2013-04-06.sql.gz | mysql -u root -p bd
    

或者,如果您先解压缩它,您可以从 MySQL promt ( mysql>) 中运行转储(您不需要专门的命令行 gzip,大多数 GUI 存档器,例如7-Zip都支持这种格式):

mysql> \. C:/Vikalp/Gyankosh/Source/beedictionary_2013-04-06.sql
于 2013-04-20T22:32:10.590 回答
2

你不需要 gunzip 只是:zcat myfile.gz | mysql -uuser -ppassword mydatabase 这样更快

于 2016-05-03T13:03:06.300 回答
1

你的答案已经在这里

phpMyAdmin:无法导入庞大的数据库文件,有什么建议吗?

在 php.ini 文件下,通常位于 c:\xampp\php 或 wampp 中,无论你叫什么

post_max_size=128M
upload_max_filesize=128M

改变那里的价值会让你得到你想要的。祝你好运不要忘记重新启动,apache和mysql。

于 2013-04-20T22:04:56.050 回答
0

尝试以下步骤使用 .gz 文件恢复数据库:

1. Run command : gunzip C:/Vik/Gya/Source/beed_2013-04-06.sql.gz

这将解压缩 .gz 文件并将 beed_2013-04-06.sql 存储在同一位置。

2. Type the following command to import sql data file:
      mysql -u username -p bd < C:/Vik/Gya/Source/beed_2013-04-06.sql
于 2013-07-18T11:41:00.960 回答