處理普通用戶安裝啓動mysql報:Can't find error-message file'/usr/share/mysql/errmsg.sys' 問題

操作系統:centos7
mysql版本:5.7.29
使用普通用戶安裝完成以後,啓動mysql:
/data/mysql/usr/sbin/mysqld --defaults-file=/data/mysql/etc/my.cnf --user=dongzw &
日誌中報:
[ERROR] Can't find error-message file '/usr/share/mysql/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
大概搜索了一下,在my.cnf中添加
basedir=/data/mysql
再啓動,報錯變成了:
[ERROR] Can't read from messagefile '/data/mysql/share/mysql/errmsg.sys'
注意報錯路徑改變了,由/usr變成了/data,此時在安裝路徑下查找errmsg.sys文件:
[dongzw@localhost mysql]$ find /data/ -name errmsg.sys
/data/mysql/usr/share/mysql/bulgarian/errmsg.sys
/data/mysql/usr/share/mysql/czech/errmsg.sys
/data/mysql/usr/share/mysql/danish/errmsg.sys
/data/mysql/usr/share/mysql/dutch/errmsg.sys
/data/mysql/usr/share/mysql/english/errmsg.sys
.....................
看名字,應爲各國語言的版本,這裏選擇english版本,新建並把文件拷到報錯路徑,當前路徑爲:/data/mysql
[dongzw@localhost mysql]$ mkdir -p share/mysql
[dongzw@localhost mysql]$ cp /data/mysql/usr/share/mysql/english/errmsg.sys share/mysql/
停止mysql:
/data/mysql/usr/bin/mysqladmin -uroot -proot -S /data/mysql/mysql.sock shutdown
再次啓動,只有Warning信息了,問題解決。

解決方式2:
根據上面的查找到的errmsg.sys信息,可在my.cnf中配置:
lc-messages-dir=/data/mysql/usr/share/mysql/english
my.cnf中去掉basedir=/data/mysql
或者在啓動命令加上--lc-messages-dir參數也可以解決問題:
/data/mysql/usr/sbin/mysqld --defaults-file=/data/mysql/etc/my.cnf --lc-messages-dir=/data/mysql/usr/share/mysql/english --user=dongzw &


附:安裝5.7.29初始化數據庫命令:
[dongzw@localhost data]$ /data/mysql/usr/sbin/mysqld --initialize --defaults-file=/data/mysql/etc/my.cnf --user=dongzw
如果報:
[ERROR] unknown variable 'defaults-file=/data/mysql/etc/my.cnf' 
[ERROR] Can't find error-message file '/usr/share/mysql/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
需要把 --initialize放到--defaults-file後面
 /data/mysql/usr/sbin/mysqld  --defaults-file=/data/mysql/etc/my.cnf --initialize --user=dongzw

my.cnf簡單配置文件:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[client]
port = 3306
socket = /data/mysql/mysql.sock
default-character-set = utf8

[mysqld]
port = 3306
character-set-server = utf8
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
basedir=/data/mysql
datadir=/data/mysql/data
socket=/data/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid
secure-file-priv=/data/mysql/var/lib/mysql-files
explicit_defaults_for_timestamp=true

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章