操作环境:
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,查看之前写入数据正常访问,数据完整。