gpt4 book ai didi

mysql - 在mysql命令行中恢复数据库

转载 作者:可可西里 更新时间:2023-11-01 08:50:37 28 4
gpt4 key购买 nike

我已经从一台服务器备份了一个数据库,并试图在另一台服务器上恢复它。

Mysql版本是5.5

当我尝试使用以下命令恢复数据库时,screen -r

mysql -u root -p password mydb < mydump.sql
ERROR 1005 (HY000) at line 356: Can't create table 'mydb.mytable' (errno: 150)

我明白这是外键约束问题。转储文件中有以下语句。

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

但是还是失败了。我的 dumo 文件非常大,所以无法打开和编辑。因此,不是在转储中添加 SET FOREIGN_KEY_CHECKS=0;,我可以像下面这样直接在 mysql 命令行中设置它吗?

mysql> SET FOREIGN_KEY_CHECKS=0;
...
mysql> source "mydump.sql";
...
mysql> SET FOREIGN_KEY_CHECKS=1;

它会起作用吗?我的数据库重新加载需要数小时才能完成。因此,在花费数小时在此之前,我在这里寻求帮助。

感谢您的帮助。

最佳答案

通常,我会通过管道输入 2 个 sql 文件——首先是带有 SET FOREIGN_KEY_CHECKS=0; 的单行文件,然后是转储文件。您不必担心将其设置回去;它只会持续当前 session (文件加载后将终止)。

仅供引用,您还可以使用 sed -i 1i"SET FOREIGN_KEY_CHECKS=0;"dump.sql 如果您想在不目视编辑文件的情况下永久添加此行。

关于mysql - 在mysql命令行中恢复数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15033887/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com