MySQL语句执行的错误信息无法正常提示

数据库关系型数据库技术服务知识库
问题描述

模拟一个解析器无法正常解析的错误,报错信息中只有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 如果您有其他问题,欢迎您联系火山引擎技术支持服务

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论