在群里看到有新同學還在問mysql無法啟動的問題,于是總結了幾個常見情況與解決方法,需要的朋友可以參考下
昨天在群里看到有新同學還在問mysql無法啟動的問題,于是總結了幾個常見情況,權當普及帖了,老鳥自覺飛過。
問題1:目錄、文件權限設置不正確
MySQL的$datadir目錄,及其下屬目錄、文件權限文件權限設置設置不正確,導致MySQL無法正常讀寫文件,無法啟動。
文件權限設置例如:
?代碼如下:
mysqld_safe?Starting?mysqld?daemon?with?databases?from?/usr/local/mysql/data? /usr/local/mysql/bin/mysqld_safe:?line?107:?/usr/local/mysql/data/imysql.local.err:?Permission?denied
問題2:端口沖突
已有其他mysqld實例啟動,且占用了相同端口,需要修改 port 選項。
錯誤信息例如:
代碼如下:
[ERROR]?Can't?start?server:?Bind?on?TCP/IP?port:?Address?already?in?use? [ERROR]?Do?you?already?have?another?mysqld?server?running?on?port:?3306??? [ERROR]?Aborting
問題3:innodb配置不正確
innodb中關于datafile、log file設置不正確,導致無法啟動。尤其是第一次用默認參數啟動過,后來又參考一些優化指南后,修改了innodb的參數,會提示different size,詳細錯誤例如:
代碼如下:
InnoDB:?Error:?log?file?./ib_logfile0?is?of?different?size?0?5242880?bytes? InnoDB:?than?specified?in?the?.cnf?file?0?134217728?bytes!? [ERROR]?Plugin?‘InnoDB'?init?function?returned?error.? [ERROR]?Plugin?‘InnoDB'?registration?as?a?STORAGE?ENGINE?failed.
問題4:沒有初始化mysql系統庫
MySQL安裝完后,需要運行mysql_install_db初始化mysql這個系統庫,才能正常啟動。
問題5:如果將mysql以普通用戶權限運行的時候需要注意一些目錄權限與用戶名密碼設置
有時候為了讓mysql更文件權限設置一些,我們都會將mysql低權限運行,由于一些安全設置工具的原因,需要將此用戶重新設置一下密碼就可以了。
本次先列舉上述幾個文件權限設置,下次再補充。
通常地,碰到mysqld進程無法啟動時,不管任何錯誤,都優先檢查錯誤日志(日志文件一般在 $datadir/xx.err文件,或者是 /var/log/message、/var/log/mysql/mysqld.log之類的),根據錯誤日志提示去找到問題原因,不要只看表面提示,例如找不到 mysql.sock 文件之類的。