MySQL Error number: MY-012508; Symbol: ER_IB_MSG_683; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: MY-012508; Symbol: ER_IB_MSG_683; SQLSTATE: HY000
Message: Waiting for master thread to be suspended
错误说明
MY-012508号错误是由由MySQL错误代码ER_IB_MSG_683,SQLSTATE代码HY000所反映出来的。这个错误通常是由于使用的字符集不匹配导致的,它会终止MySQL进程并显示以下错误消息:“Oracle GoldenGate Delivery发现了致命错误, 目标数据库:XXXX, 错误:Unknown character set id: XXX”。
常见案例
MY-012508号错误常常出现在使用Oracle GoldenGate复制数据到MySQL数据库时。此时,Error message “Oracle GoldenGate Delivery发现了致命错误, 目标数据库:XXXX, 错误:Unknown character set id: XXX” 会显示在MySQL日志文件中。如果MySQL server和GoldenGate用于数据传输的字符集不相同,则这种错误就会发生。
解决方案
解决MY-012508号错误,你首先需要检查MySQL server使用的字符集,请执行这条SQL语句查看:SHOW VARIABLES WHERE VARIABLE_NAME LIKE ‘character_set_%’ OR VARIABLE_NAME LIKE ‘collation%’; 对于 GoldenGate 来说,你可以使用 ADD CHARSET 命令来查看当前使用的字符集:ADD CHARSET *.
如果MySQL server和GoldenGate使用的字符集不同,可以尝试使用 CONVERT CHARSET 命令修改传输的数据,如:CONVERT CHARSET FROM mycharset TO character_set_client 。
此外,将MySQL的character_set_server设置为UTF8,设置MySQL的字符集方式如下:
(1)编辑MySQL的配置文件 my.cnf 或者 my.ini 文件,加入以下参数:
[mysqld]
character_set_server=utf8
(2)重新启动MySQL数据库服务:
service mysqld restart
如果使用正确的字符集,但是仍然出现此错误,则可能是MySQLWeb服务器中某些程序出错了,解决方案是重启MySQL Web服务器,然后重新执行操作。
如果以上解决方法仍然无法解决问题,可以尝试升级MySQL到最新版本。安装最新版本后,你需要通过正确的权限重新导入数据,从而避免出现 MY-012508 错误。