mysql 更改預設資料目錄
本文主要介紹在CentOS下通過yum命令安裝MySQL之後,如何移動預設資料目錄到指定位置。
安裝mysql:
yum -y install mysql-server mysql-client
Mysql 安裝之後預設的資料檔案儲存目錄為/var/lib/mysql。
假如要把目錄移到/home/data下需要進行下面幾步:
1、home目錄下建立data目錄
cd /home mkdir data
2、把MySQL服務程序停掉:
service mysqld stop
3、把/var/lib/mysql 整個目錄移到 /home/data
mv /var/lib/mysql /home/data/
這樣就把MySQL的資料檔案移動到了/home/data/mysql下
然後再次建立一個新的空目錄,並製作一個軟連線到新的sock路徑:
mkdir /var/lib/mysql ln -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock
4、vim /etc/my.cnf
如果/etc/目錄下沒有my.cnf配置檔案,請到/usr/share/mysql/下找到*.cnf檔案,拷貝其中一個到/etc/並改名為my.cnf。
為保證MySQL能夠正常工作,需要指明mysql.sock檔案的產生位置。修改
datadir=/home/data/mysql socket=/home/data/mysql/mysql.sock
5、vim /etc/init.d/mysqld
datadir=/home/data/mysql
如果是CentOS還要改 /usr/bin/mysqld_safe 相關檔案位置;
6、vim /usr/lib64/mysql/mysql_config
我發現:vi /usr/bin/mysql_config-64
socket='/home/data/mysql/mysql.sock' ldata='/home/data/mysql'
7、重新啟動MySQL服務
service mysqld start
如果工作正常移動就成功了,否則對照前面的7步再檢查一下。
另外還要注意目錄的屬主和許可權,程式碼如下:
chown -R mysql:mysql /home/data/mysql/ chmod 700 /home/data/mysql/test/ chmod 660 /home/data/mysql/test/*
自己:chmod 700 /home/data/mysql/test/
最後,檢視日誌/var/log/mysqld.log,如果發現Can't create test file /xxx/mysql/centos5.lower-test
這裡是因為沒有許可權建立或讀取檔案。
解決辦法就是使用setenforce 0 這個命令,讓系統關閉許可權校驗,然後再執行命令 service mysqld start 發現OK了。
另外一個辦法是restorecon -FRv /home/data/mysql,或者chcon -R -t mysqld_db_t /home/data/mysql