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

21

我有一个file.sql文件,想要进行恢复。我找到了这个命令:

mysql -u 用户名 -p 数据库名 < file.sql

在文件系统中应该把'file.sql'放在哪里呢?我使用的是Windows和XAMPP。谢谢。

*) 这个转储文件大小为3GB++。


对我来说,这个解决方案有效:https://dev59.com/KWMm5IYBdhLWcg3wX-HT#25724087。 - M14
9个回答

23

当然,您可以将它放在任何有足够磁盘空间的地方。

一个好的选择是 /tmp (在Linux或类似系统中) 或者 c:\temp (在Windows或类似系统中)。

但是,假设您使用了这条精确的命令,您需要将工作目录更改为保存该文件的目录。

cd /path/where/sql/file/is

然后

mysql -u username -p database_name < file.sql
如果你的PATH中没有mysql二进制文件,你可能需要运行以下命令。
/path/to/mysql/bin/mysql -u username -p database_name < file.sql

或者将 file.sql 暂时放置于 mysql 的二进制目录中(不推荐)

另一个可能的方案是像这样在文件系统中指向该文件

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

顺带一提,如果你在Windows系统上,请将正斜杠改为反斜杠。


5

您可以将其放在系统中的任何位置,但考虑更改命令。

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

出现了以下错误:"您的SQL语法有误,请检查与您的MySQL服务器版本相对应的手册,以获取正确的语法使用方法"。 - Amit

5

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

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

在这个例子中,使用vivek作为用户名,将"data.sql"文件导入到"blog"数据库中:
$ mysql -u vivek -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

这是一个关于mysqldump的技术文档,它是MySQL数据库备份工具。使用mysqldump可以将MySQL数据库中的数据和结构导出到文件中,以便在需要时进行恢复或迁移。mysqldump支持多种选项,可以根据需要选择不同的选项来导出所需的数据。

3
最好的选择是:

1)通过“开始”->“运行”->“命令”或其他任何方式打开命令提示符;

2)更改您的目录,将 file.sql 文件保存在 C:\temp\file.sql 中,以便您的命令提示符应如下所示:

C:\temp> 

3) 现在尝试使用这些命令

mysql -u root -p database_name < file.sql

3
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 我建议添加第3.1步关于 CREATE DATABASE DbName;,除非DbName已经存在,否则我不确定您是否可以继续进行第4步。我可能会添加的另一个提示是 --port 9999 _(其中9999是您的特定端口,如果MySQL不在默认端口3306上 - 我的不在)_。如果您正在寻找脚本解决方案,则此处有更好的答案,但是如果手动执行,则此方法很准确。 - HPWD

2
当我执行这个线程的答案时,它返回“'mysql'不被识别为内部或外部命令、可操作的程序或批处理文件。”原来我必须先在xampp/mysql/bin文件夹中执行mysql.exe,而且转储文件路径是相对于这个bin文件夹的。我把我的文件放在那里,它就可以工作了。谢谢大家。

4
这是因为您的环境变量中没有mysql.exe。有关MySQL导入/导出的更多信息,请参见:http://wpy.me/en/blog/2-how-to-export-and-import-a-mysql-database-from-the-command-line-shell - wappy

1

你需要使用以下方式指向文件的位置:

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

0

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

有命令行支持。

备份或还原


-1

您也可以使用phpmyadmin来恢复dump文件,但请确保它是.sql文件。

第二种方法适用于Linux用户,可以使用命令行来还原dump文件。

mysql> mysql -u用户名 -p密码 表名 < /路径/to/dump_file.sql


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