更新CHARACTER SET后,MySQL表不存在

时间:2019-06-22 20:47:52

标签: mysql

在我的一张表上将字符集从utf8转换为utf8mb4之后,更改将按预期进行,直到重新启动MySQL服务器为止。重新启动后,我得到[42S02][1146] Table 'db.myTable' doesn't exist

每次我尝试更新字符集时都会发生这种情况。这是我一直在运行的更改:

LOCK TABLES myTable WRITE;
SET FOREIGN_KEY_CHECKS = 0;
ALTER TABLE myTable CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
SET FOREIGN_KEY_CHECKS = 1;
UNLOCK TABLES;

我要去哪里错了?转换字符集时,我还应该做些其他事情吗?是否有任何可能的方法可以从中恢复而无需还原备份?

1 个答案:

答案 0 :(得分:0)

我弄清楚哪里出了问题。

运行SHOW ENGINE INNODB STATUS;表明,由于另一个表具有不同的CHAR SET,因此FOREIGN KEY导致了该问题。

更改所有表的CHAR SET现在已经解决了我的问题。