使用innodb_data_file_path修改資料檔案位置,發生The server quit without updating PID file錯誤的解決原因及方法。
近日,給CentOS下的MySQL配置資料檔案位置,但是每次指定到非MySQL預設安裝目錄的時候,就無法啟動,並且報“The server quit without updating PID file”錯誤。仔細檢查,是許可權錯誤,包括a. MySQL對新建的資料夾是沒有訪問許可權;b. SELinux的許可權沒有放開。
另外,有的時候ibdata1大小發生變化或者ib_logfile*(預設是ib_logfile0、ib_logfile1兩個檔案)沒有刪除也會出現類似的錯誤,如果修改許可權以後還出現錯誤, 請刪除ibdata1、ib_logfile*檔案(預設情況下資料都儲存在ibdata1檔案中,因此刪除前請備份系統資料。
下面是修改資料檔案位置的詳細方法:
1. 關閉MySQL
service mysql stop
2. 建立資料資料夾
注意,MySQL自己不會建立資料資料夾,所以如果資料夾不存在,則必須手動建立。
mkdir /home/test
3. 給新檔案及賦予mysql使用者許可權
chown -R mysql:mysql /home/test/
4. 配置SELinux
chcon -R -t mysqld_db_t /home/test/
5. 修改my.cnf
在[mysqld]節點下加入以下兩行。注意,如果innodb_data_file_path要寫成絕對路徑,則innodb_data_home_dir要留空,否則都是相對innodb_data_home_dir的相對路徑。
innodb_data_home_dir =
innodb_data_file_path=/var/lib/mysql/ibdata1:18M;/home/test5/ibdata2:10M:autoextend
6. 啟動mysql
service mysql start
附:如果是Windows平臺,則簡單得多,不需要授權,修改配置檔案即可。Windows平臺的路徑要包含在英文雙引號中,如下
innodb_data_home_dir =
innodb_data_file_path="c:/ibdata1:10M;d:/ibdata2:10M:autoextend"