Mysql执行查询时只显示错误代码,不显示错误详细的原因Can‘t read from messagefile ‘/usr/share/mysql/english/errmsg.sys‘

一、错误反馈的代码如

Mysql error :1054 - Unknown error 1054 或者是一些其他的异常代码比如4200,以及

ERROR 1133 (42000): Unknown error 1133等。

Mysql执行查询时只显示错误代码,不显示错误详细的原因Can‘t read from messagefile ‘/usr/share/mysql/english/errmsg.sys‘_第1张图片

二、原因分析。

这个原因在我本地的电脑上,以及其他我部署过的MySQL服务器上没有出现过这个问题,最终查阅了MySQL的日志后才发现了问题的所在,liunx上的话一般MySQL的日志在var/log/mysql.log下

Mysql执行查询时只显示错误代码,不显示错误详细的原因Can‘t read from messagefile ‘/usr/share/mysql/english/errmsg.sys‘_第2张图片

 日志中有一句错误信息

Using pre 5.5 semantics to load error messages from /usr/share/mysql/english/.

[ERROR] Can't read from messagefile '/usr/share/mysql/english/errmsg.sys'

报出的是MySQL没有找到相关的错误日志文件可写入。

因为my.cf中的basedir参数设置错误,导致没有找到$base_dir/share/errmsg.sys文件,装载错误信息发生错误。虽然不影响MySQL的运行,但是会导致显示错误信息不完整。

三、解决的方法

 我们找到mysql的安装目录,liunx下的话可以用命令whereis mysql 可以找到mysql的目录,我这边是usr/share/mysql/,我在这个目录看到english目录点进去发现是有这个文件,但是无法访问到。然后打开my.cf配置文件,在mysqld的栏目下加上以下配置信息,指定输出的mysql安装的日志文件位置。

lc-messages-dir=/usr/share/mysql/english

Mysql执行查询时只显示错误代码,不显示错误详细的原因Can‘t read from messagefile ‘/usr/share/mysql/english/errmsg.sys‘_第3张图片

 然后重启mysql服务就可以解决了

重新命令 systemctl  restart mysqld.service,查看mysql状态 service  mysqld status

如果配置完重启不行的话,可以考虑从可以正常输出日志信息的MySQL服务上,copy一份errmsg.sys这个文件覆盖,然后重启就可以解决!

Mysql执行查询时只显示错误代码,不显示错误详细的原因Can‘t read from messagefile ‘/usr/share/mysql/english/errmsg.sys‘_第4张图片

 

你可能感兴趣的:(MySql,mysql,数据库)