近日,給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"