前段時間打包了一個數據庫鏡像,可是啓動容器以後發現報錯 ··· ···mysql
MySQL: Starting MySQL….. ERROR! The server quit without updating PID file
查了網絡上的解決方案比較全,遂轉帖記錄下。linux
由於鏡像打包以前是作過主從的,因此這次把數據目錄 /data 下的 mysql_MS.index 文件重命名,而後從新啓動生成就行了。sql
-rw-rw---- 1 mysql mysql 36 Dec 16 01:43 mysql_MS.index -rw-rw---- 1 mysql mysql 126 Dec 16 01:35 mysql_MS.index.bak
發生這種狀況可能的緣由有多種,具體什麼緣由最好的辦法是先查看下錯誤日誌:數據庫
一、多是 /usr/local/mysql/data/mysql.pid 文件沒有寫的權限
解決方法 :給予權限,執行 「chown -R mysql:mysql /var/data」 「chmod -R 755 /usr/local/mysql/data」 而後從新啓動 mysqld!
二、可能進程裏已經存在 mysql 進程
解決方法:用命令 「ps -ef|grep mysqld」 查看是否有 mysqld 進程,若是有使用 「kill -9 進程號」 殺死,而後從新啓動mysqld!
三、多是第二次在機器上安裝 mysql,有殘餘數據影響了服務的啓動。
解決方法:去 mysql 的數據目錄 /data 看看,若是存在 mysql-bin.index,就趕快把它刪除掉吧,它就是罪魁禍首了。
四、mysql 在啓動時沒有指定配置文件時會使用 /etc/my.cnf 配置文件,請打開這個文件查看在 [mysqld] 節下有沒有指定數據目錄 (datadir)。
解決方法:請在 [mysqld] 下設置這一行:datadir = /usr/local/mysql/data
五、skip-federated 字段問題
解決方法:檢查一下 /etc/my.cnf 文件中有沒有沒被註釋掉的 skip-federated 字段,若是有就當即註釋掉吧。
六、錯誤日誌目錄不存在
解決方法:使用 「chown」 「chmod」 命令賦予mysql全部者及權限
七、selinux 惹的禍,若是是 centos 系統,默認會開啓 selinux
解決方法:關閉它,打開 /etc/selinux/config,把 SELINUX=enforcing 改成 SELINUX=disabled 後存盤退出重啓機器試試。centos
1. MySQL提示:The server quit without updating PID file問題的解決辦法bash