出現這種問題,mysql 啟報錯報:The server quit without updating PID file,
主要解決思路是看mysql錯誤日志。
1、第一步 在配置文件添加error log
vi /etc/my.cnf
然后在配置文件中添加error log 如下:
[mysqld_safe]
log-error = /var/run/mysqld/logs/error.log
2、創建error log 目錄與文件
創建目錄:
mkdir /var/run/mysqld/logs
創建error.log文件:
touch /var/run/mysqld/logs/error.log
對目錄和文件授權
chown -R mysql:mysql /usr/run/mysqld chmod -R 755 /usr/run/mysqld
3、啟動mysql 服務器:
service mysqld start
4、接着查看error log信息
cat /var/run/mysqld/logs/error.log
最后再根據錯誤信息去解決問題。
PS: 如果error.log 沒有寫入錯誤信息,可能是error.log 不存在或者沒對目錄與文件授權,就操作上面第二個步驟所說的命令即可。
其實解決問題與錯誤,要根據對應的錯誤信息去解決錯誤,需要對症下葯,所以需要查看mysql的error.log 信息。
下面列羅可能錯誤問題及解決方法:
用df命令查了下,果然磁盤滿了,因為當時分區采用系統默認,不知道為什么不能自動擴容!以后在處理這個問題!如圖所示:

刪除了些沒用的日志后,重新啟動數據庫還是出錯。

1、可能是/usr/local/mysql/data/mysql.pid文件沒有寫的權限
解決方法 :給予權限,執行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新啟動mysqld!
2、可能進程里已經存在mysql進程
解決方法:用命令“ps -ef|grep mysqld”查看是否有mysqld進程,如果有使用“kill -9 進程號”殺死,然后重新啟動mysqld!
3、可能是第二次在機器上安裝mysql,有殘余數據影響了服務的啟動。
解決方法:去mysql的數據目錄/data看看,如果存在mysql-bin.index,就趕快把它刪除掉吧,它就是罪魁禍首了。本人就是使用第三條方法解決的 !
4、mysql在啟動時沒有指定配置文件時會使用vi /etc/my.cnf配置文件,請打開這個文件查看在[mysqld]節下有沒有指定數據目錄(datadir)。
解決方法:請在[mysqld]下設置這一行:datadir = /usr/local/mysql/data
5、skip-federated字段問題
解決方法:檢查一下/etc/my.cnf文件中有沒有沒被注釋掉的skip-federated字段,如果有就立即注釋掉吧。
6、錯誤日志目錄不存在
解決方法:創建目錄與文件,使用“chown” “chmod”命令賦予mysql所有者及權限
錯誤日志目錄可通過vi /etc/my.cnf 看配置文件錯誤日志目錄與文件,如下:
[mysqld_safe]
log-error = /var/run/mysqld/logs/error.log
創建目錄:
mkdir /var/run/mysqld/logs
創建文件:
touch /var/run/mysqld/logs/error.log
對目錄與文件授權:
chown -R mysql:mysql /usr/run/mysqld chmod -R 755 /usr/run/mysqld
7、selinux惹的禍,如果是centos系統,默認會開啟selinux
解決方法:關閉它,打開/etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled后存盤退出重啟機器試試。
8、
chown -R mysql.mysql /tmp
PS:查看MySQL運行與錯誤日志。
下面介紹mysql幾個基本命名:
1、啟動mysql
mysql 5.0 版本:
service mysqld start
mysql 5.7 版本:
service mysql start
2、停止mysql
mysql 5.0 版本:
service mysqld stop
mysql 5.7 版本:
service mysql stop
3、重新啟動mysql
mysql 5.0 版本:
service mysqld restart
mysql 5.7 版本:
service mysql restart
4、查看mysql 狀態
mysql 5.0 版本:
service mysqld status
mysql 5.7 版本:
service mysql status