使用命令行恢复 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 转储文件的主要内容,如果未能解决你的问题,请参考以下文章