阿里雲服務器重啟后mysql不能啟動的問題


環境:阿里雲ECS服務器上,Ubuntu linux 12.04,64位版。MySQL 5.1.

首先查看/etc/rc.local,可以看到Ubuntu通過/etc/init.d/mysqld腳本啟動mysql服務:

/etc/mysqld start

這個腳本是安裝時從/alidata/server/mysql/目錄(mysql安裝目錄)拷貝過來的,沒問題。

但是在執行這個腳本時,會調用/alidata/server/mysql/bin/my_print_defaults,

將輸出內容交給腳本函數parse_serverarguments()解析,

得到$basedir, $bindir, $datadir這幾個啟動目錄。

問題就出在執行my_print_defaults上。


通過執行/alidata/server/mysql/bin/my_print_defaults --help,可以看到它從以下幾個目錄讀mysql配置:

  1. /etc/my.cnf   
  2. /etc/mysql/my.cnf   
  3. /alidata/server/mysql/etc/my.cnf   
  4. ~/.my.cnf 

后面兩個路徑不存在,所以只會讀取前兩個文件的內容。
/etc/my.cnf是安裝時從/alidata目錄拷過來的,沒有問題。 
/etc/mysql/my.cnf卻是ubuntu缺省存在的,一讀,就把前面的覆蓋了。


所以刪除/etc/mysql目錄,執行/etc/init.d/mysqld restart,就OK了。

 

[后記]

晚上時候,同事報MySQL又啟動不了。錯誤日志:

/alidata/server/mysql/libexec/mysqld: File '/var/log/mysql/mysql-bin.index' not found (Errcode: 13)  

網上搜到文章說”Errorcode:13“是目錄權限問題而這個文件是存在的!mysql用戶也有讀寫權限。

嘗試給/var/log/mysql目錄權限從0755改成0775,給mysql用戶組也加了寫權限,現在的權限是:

drwxrwxr-x 2 mysql mysql 4096 Oct 16 23:00 mysql/

繼續啟動MySQL,失敗,但錯誤日志已經從剛才的變成了這個(說明mysql組也需要寫權限,難道啟動mysql需要其他mysql組用戶?):

/alidata/server/mysql/libexec/mysqld: File './mysql-bin.000032' not found (Errcode: 2)

繼續搜,在這里找到了方法,編輯/var/log/mysql/mysql-bin.index,刪除其中的一行內容:

mysql-bin.000032

再次啟動MySQL,成功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM