我已经从一台服务器上备份了一个数据库,并试图在另一台服务器上恢复它。
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 文件非常大,因此无法打开和编辑。所以我可以直接在mysql命令行中设置它而不是添加SET FOREIGN_KEY_CHECKS=0;
转储,如下所示?
mysql> SET FOREIGN_KEY_CHECKS=0;
...
mysql> source "mydump.sql";
...
mysql> SET FOREIGN_KEY_CHECKS=1;
它会起作用吗?我的数据库重新加载需要几个小时才能完成。所以我在花费数小时之前在这里寻求帮助。
谢谢您的帮助。