freebsd mysql啓動報及failed precmd routine for mysql的錯誤

mysql在啓動時,若是出錯,每每出錯信息量較少。這使得咱們沒法準確的找到出錯的信息點。html

筆者由阿里雲自定義鏡像安裝FREEBSD系統後,啓動mysql出現了ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' 錯誤。表面上看,是說鏈接不到/tmp/mysql.sock,實際上,是因爲mysql-server沒有成功啓動,進而致使了/tmp/mysql.sock未成功生成。mysql

排查mysql-server

mysql-server安裝後,其安裝的位置爲 /usr/local/etc/rc.d, 咱們進入其文件夾,並執行 ./mysql-server start, 發生以下錯誤提示:./mysql-server: WARNING: failed precmd routine for mysql
這說明,mysql-server的確沒有成功啓動,報了錯,但錯誤信息太寬泛,沒有實際的指導意義。sql

mysql-server的安裝位置: https://dev.mysql.com/doc/ref...

輸出報錯具體信息

編輯 mysql-server這個文件
$ee mysql-server 注意須要root權限
而後找到下面的部分,並在/dev/null 2>/dev/null2>/dev/null前加入#socket

mysql_create_auth_tables()
{
   ...
    eval $mysql_install_db $mysql_install_db_args # >/dev/null 2>/dev/null
   ...
}
 
mysql_prestart()
{
   ... 
    if checkyesno mysql_limits; then
        eval `/usr/bin/limits ${mysql_limits_args}` # 2>/dev/null
    else
        return 0
    fi
   ...
}

查看啓動報錯

此時,咱們再次執行./mysql-server start將會看到具體的報錯信息,筆者的報錯信息以下:阿里雲

2018-03-21 14:06:54 1827 [Warning] Can't create test file /var/db/mysql/iZ2zehhwq5a6tp1zk5quhiZ.lower-test
/usr/local/libexec/mysqld: Can't change dir to '/var/db/mysql/' (Errcode: 2 - No such file or directory)
2018-03-21 14:06:54 1827 [ERROR] Aborting

緣由是沒法將目錄定位至'/var/db/mysql/' rest

遂創建了相關的文件夾,解決了相關問題。code

恢復修改

./mysql-server stop
從新編輯mysql-server進行恢復
./mysql-server startserver

總結:不管出現什麼問題,解決該問題的第一步都應該是:查看具體的報錯信息.
相關文章
相關標籤/搜索