1. MySQL5.7.21啓動時報錯:html
[ERROR] Can't find error-message file '/data/mysql/3307/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.mysql
2. 登陸MySQL查看系統全局參數:sql
mysql> show global variables like '%messages%';
+-----------------+-----------------------+
| Variable_name | Value |
+-----------------+-----------------------+
| lc_messages | en_US |
| lc_messages_dir | /data/mysql/share/ |
+-----------------+-----------------------+socket
3. 而後發現lc_messages_dir的目錄在/data/mysql/share/, 而後到系統層面查看spa
[root@Master mysql]# ll
total 4
drwxr-xr-x 6 mysql mysql 4096 Aug 31 11:47 3307htm
4. 從系統相應路徑下並無發現share目錄,而後仍是在系統層面找errmsg.sys文件blog
[root@Master mysql]# find / -name errmsg.sysit
/opt/mysql3307/share/serbian/errmsg.sys
/opt/mysql3307/share/dutch/errmsg.sys
/opt/mysql3307/share/russian/errmsg.sys
/opt/mysql3307/share/swedish/errmsg.sys
/opt/mysql3307/share/portuguese/errmsg.sys
/opt/mysql3307/share/english/errmsg.sys
/opt/mysql3307/share/italian/errmsg.sys
/opt/mysql3307/share/czech/errmsg.sys
/opt/mysql3307/share/ukrainian/errmsg.sys
/opt/mysql3307/share/estonian/errmsg.sys
/opt/mysql3307/share/norwegian-ny/errmsg.sys
/opt/mysql3307/share/korean/errmsg.sys
/opt/mysql3307/share/french/errmsg.sys
/opt/mysql3307/share/spanish/errmsg.sys
/opt/mysql3307/share/hungarian/errmsg.sys
/opt/mysql3307/share/greek/errmsg.sys
/opt/mysql3307/share/german/errmsg.sys
/opt/mysql3307/share/polish/errmsg.sys
/opt/mysql3307/share/japanese/errmsg.sys
/opt/mysql3307/share/romanian/errmsg.sys
/opt/mysql3307/share/norwegian/errmsg.sys
/opt/mysql3307/share/bulgarian/errmsg.sys
/opt/mysql3307/share/slovak/errmsg.sys
/opt/mysql3307/share/danish/errmsg.sysio
5. 查詢了下mygtid.cnf當中並無設定此參數,而後就把lc-messages-dir加入到mygtid.cnf當中ast
[root@Master mysql]# cat /data/mysql/3307/conf/mygtid.cnf
[mysqld]
##########basic settings###################
port = 3307
bind-address = 0.0.0.0
basedir = /data/mysql/3307
datadir = /data/mysql/3307/data
socket = /data/mysql/3307/mysql.sock
lc-messages = en_US
lc-messages-dir = /opt/mysql3307/share
6. 關閉MySQL實例(由於lc-messages-dir系統參數只能在實例啓動的時候修改;lc-messages是動態參數可在線調整)
[root@Master mysql]# /opt/mysql3307/bin/mysqladmin -uroot -p -S /data/mysql/3307/mysql.sock shutdown
7. 從新啓動MySQL實例
[root@DCSDR213 mysql]# /opt/mysql3307/bin/mysqld --defaults-file=/data/mysql/3307/conf/mygtid.cnf &
8. 查看lc-messages-dir參數
9. 此時error.log當中沒有發現報錯了
參考:
https://dev.mysql.com/doc/refman/5.7/en/error-message-language.html