问题描述
模拟一个解析器无法正常解析的错误,报错信息中只有ERROR CODE, 但是没有具体的报错信息
mysql> select user,host from mysql.user;
ERROR 1064 (42000):
问题分析
包含error messages的配置文件errmsg.sys没有正确读取到,导致没有具体的报错信息
解决方案:
1.使用find命令查找到errmsg.sys文件的位置
[root@i-IVmysql57mgr data]# find / -name errmsg.sys
查询部分结果示例如下:包含了各种语言的error messages的信息文件,通常我们会选择english版本的错误信息文件
/home/demo/mysql57/share/spanish/errmsg.sys
/home/demo/mysql57/share/english/errmsg.sys
2.通过如下两种方法 使MySQL服务可以正确的读取到文件
2.1通过指定lc-messages-dir的目录,配置文件示例如下
lc-messages-dir=/home/demo/mysql57/share/english/
2.2 通过修改basedir的目录,配置文件示例如下:
basedir=/home/demo/mysql57
3.重启MySQL服务并测试
[root@i-IVmysql57mgr]# mysqld --defaults-file=/etc/my3306.cnf --datadir=/data/mysql3306/data/ --user=mysql&
MySQL的报错恢复正常显示
mysql> selct user,host from mysql.user;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'selct user,host from mysql.user' at line 1
参考资料
[1]https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_lc-messages-dir 如果您有其他问题,欢迎您联系火山引擎技术支持服务