MySQL Error number: MY-012950; Symbol: ER_IB_MSG_1125; SQLSTATE: HY000

文档解释

Error number: MY-012950; Symbol: ER_IB_MSG_1125; SQLSTATE: HY000

Message: Startup called second time during the process lifetime. In the MySQL Embedded Server Library you cannot call server_init() more than once during the process lifetime.

错误MY-012950:ER_IB_MSG_1125:SQLSTATE-HY000

错误说明:ER_IB_MSG_1125 错误指示不能在 InnoDB 表上更改字符集,因为数据库或表使用特殊存储编码(特殊表格类型)。特殊表格(例如GENERATED COLUMN表或ROW 格式表)存储需要专门的存储格式,因此不能将字符集修改为另一种字符集。

常见案例

解决方案:首先,请检查所使用的特殊存储格式。如果表格使用特殊存储格式,则无法更改其字符集。因此,最简单的解决方案是使用 ROW 格式表或普通表,然后再进行字符集设置更改。

您还可以考虑针对该表创建一个新表,然后将旧表中的所有数据复制到新表,方法是使用下面的语法:

CREATE TABLE new_table LIKE old_table;

INSERT new_table SELECT * FROM old_table;

现在,您可以修改字符集设置,因为新表的字符集通常可以修改:

ALTER TABLE new_table COLLATE utf8mb4_unicode_ci;

同样,您也可以尝试使用 SHOW CREATE TABLE 语法使用 SET 子句重新创建特殊表格。但是,请务必备份数据库,以防止出现意外情况。

你可能感兴趣的