mysql修改數據庫文件存儲位置


在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服務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM