mysql error warnings_MySQL 5.7 error和warnings无具体信息显示

【问题描述】:

版本:MySQL 5.7.18

安装方式:二进制值包解压后直接初始化

现象:只有错误代码,无错误详情,通过show errors和show warings都无法获取message。

mysql> USE ccadacdasc;

ERROR 1049 (42000): Unknown error 1049

mysql> SHOW ERRORS;

+——-+——+———-+

| Level | Code | Message |

+——-+——+———-+

| Error | 1064 | |

+——-+——+———-+

1 row in set (0.00 sec)

mysql> CREATE DATABASE mysql;

ERROR 1007 (HY000): Unknown error 1007

mysql> STOP SLAVE;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> SHOW WARNINGS;

+——-+——+———–+

| Level | Code | Message |

+——-+——+———–+

| Note | 3084 | |

+——-+——+———–+

1 row in set (0.00 sec)

虽然不影响使用,也可以到文档手册去查询具体情况,但总归不方便。

检查错误日志发现:

2017-06-16T06:40:03.292520Z 0 [ERROR] Can’t find error-message file ‘/data/mysql57/bin/share/errmsg.sys’. Check error-message file location and ‘lc-messages-dir’ configuration directive.

发现errmsg.sys找不到,并且发现在bin目录中查找。

【解决方案】:

检查配置文件发现:

# grep basedir my57.cnf

basedir = /data/mysql57/bin

basedir指定的位置有误。修改一下:

basedir = /data/mysql57

重新启动,发现无报错。

再手工产生一些error和warning,已经可以正常产生信息了。

mysql> STOP SLAVE;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> SHOW WARNINGS;

+——-+——+————————————————————————–+

| Level | Code | Message |

+——-+——+————————————————————————–+

| Note | 3084 | Replication thread(s) for channel ” are already stopped. |

+——-+——+————————————————————————–+

1 row in set (0.00 sec)

mysql> fdsfas;

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 ‘fdsfas’ at line 1

mysql> use afdasfds;

ERROR 1049 (42000): Unknown database ‘afdasfds’

原因:该实例启动时被指定错误了basedir导致无法找到errmsg.sys,所以无法显示具体error或warning的详情。

修正my.cnf重新启动mysqld即可。

这个文件在$basedir/share中存放名在此处为:

errmsg-utf8.txt

errmsg-utf8.txt: UTF-8 Unicode Pascal program text, with very long lines

用于存储各类error和warning的详情。

这个问题目前只存在于MySQL 5.7等更高版本的MySQL中。

在MySQL 5.6版本中,若因为指定了错误的basedir,导致无法找到errmsg.sys时,在启动时就会报错:

2017-06-16 15:02:49 11234 [ERROR] Can’t find messagefile ‘/data/mysql-base/mysql56/bin/share/errmsg.sys’

而在MySQL 5.7版本中,虽然在启动时会报错并记录在错误日志中,但mysqld仍然是可以起来的。

:http://www.linuxidc.com/Linux/2017-06/145041.htm

dc52ea6dccbf4fc94634797a58335175.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值