有時候重啟mysql會提示/tmp/mysql.sock不存在,此時通常會由於兩種情況導致,解決方法:
一、解決var/run/mysqld沒有pid和sock文件
MySQL下mysql.sock丟失丟失的原因一般是因為配置文件不一致的原因,mysqld 錯誤啟動,mysqld_safe 會清除一次mysql.sock 。解決方法是:
判斷一般人解決故障時沒有切換到mysql用戶,造成權限有問題,無法創建mysql授權表,所以也就無法創建/tmp/mysql.sock 和hostname.pid文件。因此,總結解決方法如下:
#su mysql // root 用戶也是可以的
$/usr/local/bin/mysql_install_db //到bin目錄執行,重建授權表
$/usr/local/bin/mysqld_safe &
mysql -uroot -p //測試
mysq>bye;
如果能看到重新生成新的 /tmp/mysql.sock 和 hostname.pid 問題,說明問題已經解決。
二、解決mysql.sock文件路徑不對的問題
方法一:在/var/lib/mysql創建一個link:ln -s /var/lib/mysql/mysql.sock /path/to/mysql/mysql.sock
方法二:在root權限下修改my.cnf文件(/etc/mysql/my.cnf),指定正確的路徑。