我有一个大约 12GB 的 MySQL 5.7.x 转储,我尝试将其导入新安装的 MySQL 8.0.x 本地实例。
mysql -u username -p test < DB-210508.sql
导入开始但失败并显示以下消息:
ERROR 1824 (HY000) at line 518: Failed to open the referenced table 'table-name'
我想知道为什么外键有问题,如果不是因为我正在导入 8.0.x
MySQL 8.0.x 实例配置如下:
[mysqld]
default_authentication_plugin= mysql_native_password
innodb_buffer_pool_size = 8G
innodb_buffer_pool_instances = 32
innodb_buffer_pool_chunk_size = 134217728
collation_server = utf8_unicode_ci
character_set_server = utf8
导入失败的原因可能是什么?
当您遇到经典的“鸡和蛋”问题时,就会发生此错误。最常见的情况是:
的
Employee
ID .⇢ 当您的
Employee
表具有对 的引用User
但User
直到之后才创建时,可能会发生这种情况Employee
。您收到的错误是:
这表明第二项是最有可能的罪魁祸首。
解决此问题的最简单方法是在导入数据时删除外键检查,然后在导入完成后恢复检查。您可以通过编辑您的 12GB
.sql
文件来做到这一点:然后,在导入文件的最后: