共計 2245 個字符,預計需要花費 6 分鐘才能閱讀完成。
今天就跟大家聊聊有關 MySQL 5.7 error 和 warnings 無具體信息顯示該怎么辦,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
【問題描述】:
版本: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 無具體信息顯示該怎么辦有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。