阿里雲服務器重啓後mysql不能啓動的問題

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

首先查看/etc/rc.local,能夠看到Ubuntu經過/etc/init.d/mysqld腳本啓動mysql服務:mysql

/etc/mysqld startlinux

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

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

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

獲得$basedir, $bindir, $datadir這幾個啓動目錄。函數

問題就出在執行my_print_defaults上。阿里雲


經過執行/alidata/server/mysql/bin/my_print_defaults --help,能夠看到它從如下幾個目錄讀mysql配置:spa

  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缺省存在的,一讀,就把前面的覆蓋了。.net


因此刪除/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,成功。

相關文章
相關標籤/搜索