使用命令行恢复 MYSQL 转储文件

Posted

技术标签:

【中文标题】使用命令行恢复 MYSQL 转储文件【英文标题】:Restore MYSQL Dump File with Command Line 【发布时间】:2011-07-22 17:35:23 【问题描述】:

我有 file.sql,我想恢复它。我找到了这个命令:

mysql -u username -p database_name < file.sql

我应该把'file.sql'放在文件系统的什么地方?我正在使用 Windows 和 XAMPP。谢谢。

*) 转储文件为 3GB++

【问题讨论】:

对我来说这个解决方案是:***.com/a/25724087/7809915. 【参考方案1】:

你可以把它放在任何地方,当然只要有足够的可用磁盘空间。

/tmp(在 linux 或类似平台上)或 c:\temp(在 Windows 或类似平台上)是一个好地方

但假设您使用了确切的行,您需要将工作目录更改为保存文件的目录。

cd /path/where/sql/file/is

然后

mysql -u username -p database_name < file.sql

如果您的 PATH 中没有 mysql bin,您可能需要运行

/path/to/mysql/bin/mysql -u username -p database_name < file.sql

或者暂时把file.sql放到mysql bin目录下(不推荐)

另一种可能的情况是像这样指向文件系统中的文件

mysql -u username -p database_name < /path/where/sql/file/is/file.sql

附言。如果您在 Windows 上,您可能希望将正斜杠更改为反斜杠。

【讨论】:

【参考方案2】:

你可以放在系统中的任何地方,但也可以考虑更改命令

mysql -u username -p database_name < /somepath/file.sql

【讨论】:

收到此错误“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在附近使用的正确语法”【参考方案3】:

输入以下命令导入sql数据文件:

$ mysql -u username -p -h localhost DATA-BASE-NAME < data.sql

在本例中,使用 vivek 作为用户名将“data.sql”文件导入“博客”数据库:

$ mysql -u sat -p -h localhost blog < data.sql

如果您有专用的数据库服务器,请将 localhost 主机名替换为实际的服务器名称或 IP 地址,如下所示:

$ mysql -u username -p -h 202.54.1.10 databasename < data.sql

或使用 mysql.cyberciti.biz 等主机名

$ mysql -u username -p -h mysql.cyberciti.biz database-name < data.sql

如果您不知道数据库名称或数据库名称包含在 sql 转储中,您可以尝试以下方法:

$ mysql -u username -p -h 202.54.1.10 < data.sql

参考:http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html

【讨论】:

【参考方案4】:

最好的选择是

1) 通过 Start -> Run -> Command 或任何方式打开命令提示符 2) 更改保存 file.sql 的目录,例如 C:\temp\file.sql,因此您的命令提示符应如下所示

C:\temp> 

3) 现在试试这些命令

mysql -u root -p database_name < file.sql

【讨论】:

【参考方案5】:
Import Database
1. Go to drive
command: d:
2. Mysql login
command: c:\xampp\mysql\bin\mysql -u root -p
3. Will ask for pwd: enter it
pwd
4. Select db
use DbName;
5. Provide file name
\. G:DbName.sql

【讨论】:

+1 我可能会建议添加关于CREATE DATABASE DbName; 的步骤 3.1 我不确定您是否可以继续执行步骤 4,除非 DbName 已经存在。我可能会添加的唯一其他花絮是--port 9999 (如果 MySQL 不在默认端口 3306 上,则 9999 是您的特定端口 - 我的不在)。 如果您正在寻找脚本解决方案,这里有更好的答案,但是手动进行,这是正确的。【参考方案6】:

当我执行这个线程的答案时,它返回'mysql' is not recognized as an internal or external command, operable program or batch file.

原来我得先在xampp/mysql/bin文件夹下执行mysql.exe,而且dump文件路径是相对于这个bin文件夹的。我把我的放在那里,它起作用了。

谢谢大家。

【讨论】:

发生这种情况是因为您的环境变量中没有 mysql.exe。有关 MySQL 导入/导出的更多信息:wpy.me/en/blog/…【参考方案7】:

您需要使用以下命令指向文件的位置:

mysql -u username -p database_name < drive:\\path_to_your_file\file.sql

【讨论】:

【参考方案8】:

作为替代方法,尝试使用还原或执行大型脚本向导来还原转储 向导。

有命令行支持。

Backup or restore

【讨论】:

【参考方案9】:

您也可以使用 phpmyadmin 恢复转储,但您必须确保它必须是 .sql 文件。

第二种方法是如果你是 linux 用户而不是使用命令行来恢复转储文件。

mysql> mysql -uuser_name -ppassword table_name /to/dump_file.sql

【讨论】:

以上是关于使用命令行恢复 MYSQL 转储文件的主要内容,如果未能解决你的问题,请参考以下文章

使用命令行恢复 MYSQL 转储文件

使用命令行恢复 MYSQL 转储文件

可以在命令行中导入使用 phpMyAdmin 创建的 MySQL 数据库转储吗?

从命令行下载 MySQL 转储

转储数据库mysql命令行

mysql 命令行 备份 恢复数据