将MySQL表恢复到数据库中

25

我在从命令行中将MySQL表恢复到数据库方面遇到了问题。使用mysqldump备份一个表是有效的,备份和恢复数据库也是正常工作的。我已经使用以下命令:

mysql -uroot -p 数据库名 表名 < 路径\表名.sql

提前感谢


1
嗨Bijsha,欢迎来到Stackoverflow。为了帮助您,请提供更多细节,包括问题的具体情况、您目前收到的错误文本以及遇到的麻烦。谢谢! - Michael Durrant
5个回答

35
啊,我想我看出问题所在了。
你的备份脚本看起来没问题。`tbl_name` 作为可选的第二个参数工作得很好。
要进行还原,你只需要运行:
mysql -uroot -p DatabaseName < path\TableName.sql

运行 man mysql 命令可以显示正确的参数和选项。

mysql [选项] 数据库名称

由于你的备份脚本只包含一个表格,所以只有该表格将被还原到你的数据库。


1
应该是 -u root,还有 path/TableName.sql - John Joe
1
@JohnJoe -u 可以带或不带空格,OP 显然正在使用 Windows,并因此使用反斜杠目录分隔符。 - Phil
它对我有用。根据我的服务器配置,我进行了一些更改,例如mysql -u用户名-p密码-h localhost数据库名称<path/Script_of_table.sql [注意这里的“/”正斜杠而不是“\”反斜杠]。 - Sohel Pathan
如果我从备份还原到现有带有一些数据的表格,它会被覆盖吗?如果是,如何避免它? - Veeresh P
1
@VeereshP 这完全取决于你的备份脚本中有什么。 - Phil

23

备份数据

mysqldump -u -p mydatabase table1 > database_dump.sql

从备份文件中恢复不需要包含表名

mysql -u -p mydatabase < database_dump.sql

我可以使用批处理文件来做同样的事情吗? - Luna
你想从批处理文件中恢复吗? - Naveen Kumar
我想通过批处理文件进行备份和还原,这可行吗? - Luna

2

恢复数据库的最佳方式:

bin文件夹中打开cmd

登录到mysql:

mysql -uroot -pyour_password

show databases;

use db_name;

现在点击“源”并将完整路径从地址栏复制到您存储SQL文件的位置,然后按“;”。
例如:
source db_name.sql;

0

如果您在远程机器上,请将db.sql文件复制到您的Mysql服务器:

$rsync -Cravzp --progress db.sql user@192.168.10.1:/home/user

现在,您可以按以下方式访问远程服务器:

$ssh -l user 192.168.10.1

在Mysql服务器中,您必须执行以下操作:

user@machine:~$mysql -h localhost -u root -p

注意:文件db.sql必须位于同一位置(/home/user)。

现在,在您的Mysql服务器中键入此命令:

mysql>'\'. db.sql + Enter。注意:删除此命令中的所有'以使其正常工作


0
如果您有一个整个数据库的SQL备份文件,并且您只想在MYSQL中恢复一个表格,则请按照以下命令操作:
>> sed -n -e '/DROP TABLE.*`table_name`/,/UNLOCK TABLES/p' databases_backup_file.sql > table_backup_file.sql

在恢复之前,请检查文件是否已正确提取,然后使用以下任何命令来恢复所需的表格。
>> less table_backup_file.sql
>> head table_backup_file.sql
>> tail table_backup_file.sql

现在你可以按照以下命令恢复表格:
>> mysql -uyour_user -pyour_password db_name < table_backup_file.sql

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