• ADADADADAD

    MySQL 5.7 error和warnings无具体信息显示该怎么办[ mysql数据库 ]

    mysql数据库 时间:2024-11-26 22:11:40

    作者:文/会员上传

    简介:

    【问题描述】:版本:MySQL 5.7.18安装方式:二进制值包解压后直接初始化现象:只有错误代码,无错误详情,通过show errors和show warings都无法获取message。mysql> USE ccadacdasc;ER

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    【问题描述】:


    版本: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仍然是可以起来的

    MySQL 5.7 error和warnings无具体信息显示该怎么办.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqlerrorwarnings