mysql默认的数据目录是/var/lib/mysql,当数据量过大时需要迁移到其它目录
操作如下:
1.备份数据库
mysqldump -u 用户名 -p 数据库名 > 脚本名.sql
2.停掉mysql服务进程
service mysqld stop
3.移动数据目录
这里将数据目录移动到/data/下
mv /var/lib/mysql /data/
4.修改/etc/my.cnf配置文件
修改datadir与socket两个属性的值
改为迁移后的目录
# datadir=/var/lib/mysql
datadir = /data/mysql
# socket=/var/lib/mysql/mysql.sock
socket = /data/mysql/mysql.sock
同时设置以下属性
[mysql]
socket=/data/mysql/mysql.sock
[client]
socket=/data/mysql/mysql.sock
[mysqldump]
socket=/data/mysql/mysql.sock
[mysqladmin]
socket=/data/mysql/mysql.sock
保存
5.重启mysql
service mysqld restart
如果启动报错,可能原因:
selinux导致的
查看selinux的模式
getenforce
如果输出是Enforcing,Enforcing是强制模式。代表SELinux在运行中,且已经开始限制domain/type之间的验证关系
使用
setenforce 0
修改为Permissive模式
Permissive:宽容模式。代表SELinux在运行中,不过不会限制domain/type之间的验证关系,即使验证不正确,进程仍可以对文件进行操作。不过如果验证不正确会发出警告
再次重启mysql