MySQL啟動建立不了pid怎麼辦

suliver發表於2021-09-11

MySQL啟動建立不了pid怎麼辦

MySQL啟動建立不了pid怎麼辦

首先pid檔案是mysql啟動後,生成的一個檔案,裡面記錄的是mysql當前的程式號,如果建立失敗,mysql就無法啟動。

可能原因:

1、mysql的埠被佔用

2、生成pid檔案的目錄mysql的許可權不足

3、mysql對應的my.cnf配置檔案錯誤

4、mysql的啟動指令碼有問題

5、mysql有殘餘資料影響了服務的啟動

推薦:

問題一:埠被佔用

<1>如果你啟動的這個mysql的埠已被其他服務佔用,應修改對應my.cnf中的埠號為其他埠,然後重啟mysql.

[mysqld]
port=3307

<2>如果在重啟mysql前,已有該mysql的程式,建議kill掉再重啟

問題二:生成pid檔案的目錄mysql的許可權不足

<1>找到指定的mysql的資料存放目錄並授權

chown -R mysql.mysql /data/mysql

<2>如果授權後,仍無法啟動。可以自己touch一個以主機名命名的pid檔案,再啟動

cd /data/mysql 
touch node1.pid

問題三:該mysql對應的my.cnf配置檔案錯誤

<1>檢視my.cnf中的port,datadir,basedir,socket等引數的配置是否正確,且配置的目錄mysql是否有許可權

問題四:mysql的啟動指令碼有問題

<1>當不確定啟動指令碼或mysql.server配置檔案內引數是否正常時,先使用mysqld_safe方式啟動,檢視是否可啟動

(先cd到mysql的安裝根目錄)

./mysqld_safe --defaults-file=/etc/mysql_3306/my.cnf --user=mysql 
or
./mysqld_safe --defaults-file=/etc/mysql/3306/my.cnf --basedir=/Apk/install/mysql --datadir
 =/mysql/data/ --pid-file=/mysql/data/mysql.pid --socket=/mysql/data/mysql.sock --port=3306

<2>如果可以啟動,那麼需要檢視mysql啟動指令碼或mysql.server配置檔案內引數並進行修改

重點看下面兩個引數

basedir
datadir

問題五:該mysql有殘餘資料影響了服務的啟動

<1>去mysql的資料存放目錄進行刪除,然後重啟

cd /data/mysql/
rm -r *index
/etc/init.d/mysql start

<2>如果還是無法啟動,去mysql的資料存放目錄進行再刪除,然後啟動

(如果資料庫不是新安裝的且資料仍在使用,不建議刪除ib開頭的檔案。如果刪除後,要使用備份對資料庫進行恢復)

cd /data/mysql/
rm -r *index
rm -r ib*

<3>備註

如果是把mysql的資料存放目錄下的檔案都刪除了,應重新進行初始化。初始化後,進行啟動。

例如:

/Apk/install/mysql/mysql-5.5.32/script/mysql_install_db   --user=mysql --basedir=/Apk/install/mysql/mysql-5.5.32 --datadir=/Apk/data/mysql_3306/data --pid-file=/Apk/data/mysql_3306/data/mysql.pid --socket=/tmp/mysql_3306.sock --port=3306

更多技術請關注。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2370/viewspace-2834045/,如需轉載,請註明出處,否則將追究法律責任。

相關文章