随着公司业务的发展,之前老系统的弊端不断的暴露出来,这不最近一套系统的数据库datadir硬盘满了,影响到现有的业务,紧急情况下先把datadir进行了迁移,记录如下:
首先,为了稳妥起见先对数据库做了备份,备份完之后就开始了datadir的迁移
mysqldump -uroot -p --databases test > /data/backup/test.sql
关闭数据库服务
systemctl stop mysqld
创建新目录
mkdir /data/mysqldata
复制MySQL原先datadir里面的数据到新文件夹下
cp -ar /var/lib/mysql /data/mysqldata
mv /var/lib/mysql /var/lib/mysql-back //备份
修改/etc/my.cnf文件里相应的目录
#datadir=/var/lib/mysql
datadir=/data/mysqldata/mysql
#socket=/var/lib/mysql/mysql.sock
socket=/data/mysqldata/mysql/mysql.sock
启动数据库
systemctl start mysqld
到此,如果mysql服务可以正常启动起来,datadir迁移就完成了。
如果服务起不来注意以下几点进行问题的排查
禁用SELinux
setenforce 0
赋权限
chown -R mysql:mysql /data/mysqldata/mysql