操作環境:
IP:192.168.1.60
操作系統版本:Centos 5.6 64bit
修改MySQL數據目錄原因:使用yum方式安裝MySQL,正常啓動。數據目錄默認安裝在/var/lib/mysql 目錄下,隨着數據量寫入增加,/ 目錄空間不足,需要添加磁盤後將MySQL數據目錄修改到新加磁盤下。
新加磁盤: /data
源MySQL數據目錄:/var/lib/mysql
遷移後目的MySQL數據目錄:/data/mysql
操作步驟:
1.停止MySQL服務
service mysqld stop
2.拷貝MySQL數據目錄到新加磁盤指定目錄下
cp -arp /var/lib/mysql /data/
注意:在此必須使用 cp -arp 命令參數,以保證整個數據目錄的完整性以及權限正確分配。同時也能拷貝之前數據庫中所有寫入數據。
或者直接使用mv 命令(mv /var/lib/mysql /data/mysql)移動整個數據目錄也可,風險較大,建議拷貝。
3.修改mysql配置文件內的數據目錄參數
vi /etc/my.cnf
[mysqld]
#datadir=/var/lib/mysql
datadir=/data/mysql
#socket=/var/lib/mysql/mysql.sock
socket=/data/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
配置文件修改時候,提前備份: cp /etc/my.cnf /etc/my.cnf_20160121_bak
修改加粗行,先複製行,註釋後修改數據存儲路徑,以方便恢復配置文件。
4.修改MySQL配置文件完成後,再修改MySQL啓動文件
vi /etc/init.d/mysqld
#get_mysql_option mysqld datadir "/var/lib/mysql"
get_mysql_option mysqld datadir "/data/mysql"
datadir="$result"
get_mysql_option mysqld socket "$datadir/mysql.sock"
socketfile="$result"
get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"
errlogfile="$result"
get_mysql_option mysqld_safe pid-file "/var/run/mysqld/mysqld.pid"
mypidfile="$result"
修改配置文件前備份: cp /etc/init.d/mysqld /root/software/backup_mysql/mysqld
修改配置文件時,先複製行,然後註釋,再對複製後的行進行路徑參數修改。
5.修改完成後啓動MySQL服務。
啓動成功,MySQL數據目錄修改完畢。
登錄MySQL,查看之前寫入數據正常訪問,數據完整。