標籤:ice 目錄 exit disable system 重啟 mysql data detail
在centOS7中,mysql資料庫檔案預設放在/var/lib,有時候這個分區比較小,需要將其遷移到比較大的分區,方法如下
1、停掉mysql服務,將/var/lib/mysql目錄複寫到新的目錄中,例如/home/mysql
cp -R /var/lib/mysql /home/
2、修改/etc/my.conf,找到如下兩行:
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
改成
datadir=/home/mysql
socket=/home/mysql/mysql.sock
3、這個時候如果重啟mysql服務會報錯:
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
在安裝mysql時建立了一個mysql使用者和mysql使用者組,隱藏檔的目錄/var/lib/mysql就是資料這個mysql使用者的,而遷移過去後,/home/mysql屬於root使用者和root使用者組(這取決於用什麼賬戶登入centOS。就本例來說只可能屬於root使用者,因為一般使用者沒有許可權在/home中進行寫操作),mysql肯定沒許可權操作屬於root的檔案,所以就報錯。
修改/home/mysql目錄以及下面所有檔案的屬性,讓它們屬於mysql使用者
chown -R mysql:mysql \home\mysql
4、完成以上步驟後仍然不能啟動mysql服務,原因是selinux的限制,把它關掉,修改/etc/selinux/config檔案:
SELINUX=disabled
最後重啟mysql服務
mysql修改資料庫檔案儲存位置