mysql初始化錯誤【一】Can't find error-message file '/usr/local/mysql/errmsg.sys'
環境:CentOS 7.2
MySQL 5.7.18
從mysql官方網站下載rpm包到服務器本地,依次安裝下面的RPM包:
mysql-community-common-5.7.18-1.el7.x86_64.rpm
mysql-community-server-5.7.18-1.el7.x86_64.rpm
mysql-community-client-5.7.18-1.el7.x86_64.rpm
mysql-community-libs-5.7.18-1.el7.x86_64.rpm
mysql-community-devel-5.7.18-1.el7.x86_64.rpm
yum安裝完成之後,開始初始化:
mysqld --initialize
因為yum安裝之後,已經將mysql的配置文件my.cnf配置完成了,所以直接將my.cnf文件拷貝到/etc/下面去了。但是在初始化的過程中查看error日誌,發現報錯:
[ERROR] Can‘t find error-message file ‘/usr/local/mysql/share/mysql/errmsg.sys‘.
Check error-message file location and ‘lc-messages-dir‘ configuration directive
在官網查詢了一番,errmsg.sys日誌是有comp_err這個項目生成的,在mysql創建進程的時候就會自動生成,我首先find了一下,但是沒有任何的文件信息,在Google之後,根據上面的告警信息在my.cnf裏面指定了lc-message-dir參數的值,然後重啟,但是error日誌還是報錯,提示Can‘t find ..... errmsg.sys,然後我touch創建了這個文件,重啟之後報錯誤Can‘t read .....
然後我將這個問題發送到技術群裏面詢問,有大神告訴我一般初始化的時候出現各種錯誤主要原因就是因為參數配置錯誤導致的,所以建議我應該慢慢的根據my.cnf裏面的配置參數進行排除。
後續我發現,在一開始的時候日誌報錯是:
[ERROR] Can‘t find error-message file ‘/usr/local/mysql/share/mysql/errmsg.sys‘.
這個時候我就在想這個share/mysql這倆個目錄是怎麽來的,因為我參數裏面指定的basedir和datadir都包含著倆個子目錄,但是我確定這個文件還是和basedir有關系的,因為我basedir指定的是/usr/local/mysql/;後面突然想到了basedir指定是數據庫的bin,lib之列的文件,但是我因為是yum安裝的,所有這些文件默認的路徑是在/usr/share/mysql下面,所以basedir這個參數可以並不需要指定,或者直接指定到/usr/share/mysql/這個目錄下面。
之後我在my.cnf做了更改:
#basedir=/usr/local/mysql 將basedir註釋掉,然後重新初始化或者重啟mysqld。
果然日誌沒有這個報錯了。
至於指定basedir=/usr/share/mysql已經驗證,指定的話還是會報錯。
[ERROR] Can‘t find error-message file ‘/usr/share/mysql/share/mysql/errmsg.sys‘. Check error-message file location and ‘lc-messages-dir‘ configuration directive
mysql初始化錯誤【一】Can't find error-message file '/usr/local/mysql/errmsg.sys'