【MySQL】MySQL 5.7 error和warnings無具體資訊顯示
【問題描述】:
版本:MySQL 5.7.18
安裝方式:二進位制值包解壓後直接初始化
現象:只有錯誤程式碼,無錯誤詳情,透過show errors和show warings都無法獲取message。
雖然不影響使用,也可以到文件手冊去查詢具體情況,但總歸不方便。
檢查錯誤日誌發現:
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,已經可以正常產生資訊了。
原因:該例項啟動時被指定錯誤了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.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仍然是可以起來的。
作者微信公眾號(持續更新)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-2140844/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL5.7具體哪一天EOL?MySql
- 【Mysql】mysql5.7無損複製MySql
- Mysql 顯示錶的相關資訊 --命令MySql
- MySQL顯示中文MySql
- 【MySQL】MySQL 5.7 初探MySql
- MySQL Case-MySQL5.7無效的並行複製MySql並行
- 【MySQL】SHOW WARNINGS和SHOW ERRORS的作用是什麼?MySqlError
- mysql查詢顯示技巧MySql
- MySQL備份和恢復具體實施(上)MySql
- MySQL 5.7 ANALYZE TABLE分析索引的統計資訊MySql索引
- 【MySQL】使用event 的具體 案例MySql
- Win10下mysql5.7和mysql8.0共存Win10MySql
- Geoserver + MySQL實現圖層顯示和文字顯示ServerMySql
- 【Mysql】mysql閃回flashback-5.7MySql
- MySQL error log和bin logMySqlError
- MySQL 5.7新特性MySql
- 使用Docker Mysql 5.7DockerMySql
- Docker 部署 MySQL 5.7DockerMySql
- MySQL 5.7 SYS SCHEMAMySql
- MySQL5.7和MySQL8.0的區別是什麼?MySql
- MySQL pager和nopager命令--不顯示查詢結果MySql
- 【Mysql】如何檢視mysql軟體版本資訊MySql
- easyui datetimebox 如何只顯示 月份,不顯示具體的資料UI
- [Mysql]Mysql5.7並行複製MySql並行
- [Mysql] 2.Mysql 5.7 Install (Windows)MySqlWindows
- PHP顯示MySQL亂碼問題PHPMySql
- MySQL 5.7 新特性大全和未來展望MySql
- MySQL 8 和 MySQL 5.7 在自增計數上的區別MySql
- Windows環境下MySQL5.7中文顯示亂碼的三種解決方案WindowsMySql
- MySQL5.7統計資訊更新的相關引數解釋和測試MySql
- MySQL 5.7的角色功能MySql
- Install MySQL 5.7 in the DockerMySqlDocker
- MySQL 5.7 叢集搭建MySql
- Mysql 5.7 MHA 高可用MySql
- MySQL:5.6 升級 5.7MySql
- Docker 安裝 Mysql 5.7DockerMySql
- MySQL 5.7 InnoDB Tablespace EncryptionMySql
- MySQL5.7 多例項MySql