MySQL Error number: MY-012017; Symbol: ER_IB_MSG_192; SQLSTATE: HY000

文档解释

Error number: MY-012017; Symbol: ER_IB_MSG_192; SQLSTATE: HY000

Message: %s

Error number: MY-012017; Symbol: ER_IB_MSG_192; SQLSTATE: HY000

错误说明

ER_IB_MSG_192 是MySQL定义的一种错误号,由错误码定义为:ER_IB_MSG_192,是一个InnoDB引擎的错误消息,一般指servor拒绝登陆用户客户端时,被拒绝的原因就是未开启字符全转版本(character_set_server)参数造成的。

常见案例

当进行MySQL访问失败,提示并显示如下错误信息:

ERROR: 1824 SQLSTATE: HY000 Message: Failed to start MySQL; Message: A character set problem was encountered between the client and the server.

对此案列,若mysql的character_set_server参数未被设置,当客户端访问MySQL服务器时,会出现此错误。

解决方法

当用户遇到此错误我们可以通过如下方法修正:

1. 确定客户端和服务器端的具体版本号,确定两方字符集是否相同;

2. 修改mysql的配置文件,includes/db_params.cnf中添加init_connect=’SET character_set_server=utf8、init-connect=’SET character_set_server=utf8’;

3. 在终端使用命令: mysqd –default-character-set=utf8 启动MySQL服务,或者 mysqladmin –default-character-set=utf8 restart;

4. 在终端使用如下命令查看Mysql的字符集: SHOW VARIABLES LIKE ‘character_set_server’

5. 输出此命令查看字符集编码是否正确,若不正确则重新设置: ALTER DATABASE `数据库名` DEFAULT CHARACTER SET `编码名`

6. 使用命令: SET NAMES `字符集名` 将character_set_client,character_set_connection和character_set_results参数调整为与mysql服务器端相匹配的编码;

7. 对于MySQL 5.7.7之后的版本IO读写发生在InnoDB模块中,应当配置如下参数:[innodb]innodb_strict_mode=0

8. 重启mysql服务器使配置信息生效: Service mysql restart;

上述措施可以正常解决ER_IB_MSG_192错误,如果还存在此类错误,应当尝试使用上述解决方案,根据具体情况调整参数设置之后即可正常解决。

你可能感兴趣的