環境:阿里雲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配置:
/etc/my.cnf
/etc/mysql/my.cnf
/alidata/server/mysql/etc/my.cnf
~/.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)
mysql-bin.000032再次啟動mysql,成功。
linux伺服器重啟後mysql無法執行
linux伺服器重啟後mysql無法執行。遇到問題的情況是 我在阿里雲購買了幾個月乙個linux雲伺服器 但是當我重啟一次後 卻打不開mysql資料庫 報錯如下error 2002 hy000 can t connect to local mysql server through socket tm...
伺服器重啟
雖然說碰壁能漲經驗,不過搞的幾個小時心裡忐忑是真的難受。每一秒都是煎熬。啟動nginx服務 nginx c usr local nginx nginx conf nginx.conf 說明 其中 usr local nginx nginx conf nginx.conf是你自己的nginx.conf...
emqtt伺服器重啟配置不生效
按官方文件介紹的 重啟emttt服務的方法 是 bin目錄下 emqttd restart 但是我改了 etc 下的 emq.conf 然後按上面方法重啟emqtt 修改的配置並沒有生效 關閉emqtt服務 emqttd stop 然後 ps aux grep emq 可以看到 還有個emqtt 守...