我已经从 CloudSQL 数据库创建了一个转储,用于本地开发。我可以成功运行转储文件以在运行 OSX 的计算机上恢复数据库,但在运行 Windows 的同事计算机上尝试时,执行部分失败,并出现以下错误:
ERROR 1822 (HY000) at line 479: Failed to add the foreign key constraint. Missing index for constraint 'fk_name' in the referenced table 'table_name'
引用中的 fk 指向表的复合主键,所以我不确定怎么会缺少索引?
以下是转储文件中的失败代码:
KEY fk_name (user_id, org_id),
CONSTRAINT fk_name FOREIGN KEY (user_id, org_id) REFERENCES table_name (user_id, org_id)
OSX 计算机正在使用 MySQL Ver 14.14 Distrib 5.7.19。Windows 计算机正在使用 MySQL Ver 8.0.15 (MySQL Community Server - GPL)
答案1
因此,看起来这是一个与 MySQL 8 的兼容性问题。
将 Windows 机器降级到 5.7 并且现在一切正常运行。