mysql迁移data目录(Linux-Centos)

随着时间的推移,mysql的数据量越越大,使用yum默认安装的目录为系统盘 /var/lib/mysql,现重新挂载了一个硬盘,需要做数据目录的迁移到 /mnt/data/。以解决占用系统盘过高情况。

1.强烈建议这种操作。镜像一个一样的Centos系统,在测试系统中先验证后无问题再实际生产系统中操作。

2.数据备份,不要删除,以免操作错误,能请及时回滚。

以下是我生产的实际操作脚本

从 /var/lib/mysql迁移到 /mnt/data/ 

使用 yum 安装 mysql 目录结构

MYSQL目录

说明

/var/lib/mysql

mysql数据文件存放路径,可自定义

/etc/my.cnf

mysql配置文件路径

/usr/lib64/mysql

mysql库文件路径

/usr/sbin/mysql*或/usr/bin/mysql*

mysql二进制可执行文件路径

/etc/rc.d/init.d/mysqld

mysql服务管理脚本地址

/var/log/mysqld.log

mysql日志文件路径

镜像系统中操作。

1.启动验证下是否OK
ps -ef|grep mysql#没有的话,执行启动命令systemctl start  mysqldmysql -uroot -p

图片

mysql迁移data目录(Linux-Centos)_第1张图片

2.关闭mysql
systemctl stop mysqldps -ef|grep mysql

mysql迁移data目录(Linux-Centos)_第2张图片

3.创建新目录,copy数据文件​​​​​​​
mkdir -p /mnt/data/
chown -R mysql:mysql /mnt/data
cp  -a /var/lib/mysql /mnt/data/  du -sh *

mysql迁移data目录(Linux-Centos)_第3张图片

mysql迁移data目录(Linux-Centos)_第4张图片

4.修改配置文件-重启验证-OK​​​​​​​
cd /etc#备份配置文件cp my.cnf my.cnf.bak20231026vi my.cnf
systemctl start mysqldps -ef|grep mysql
mysql -uroot -p
show variables like '%datadir%';

mysql迁移data目录(Linux-Centos)_第5张图片

mysql迁移data目录(Linux-Centos)_第6张图片

mysql迁移data目录(Linux-Centos)_第7张图片

图片

5.查看下硬盘使用情况
df -hl

mysql迁移data目录(Linux-Centos)_第8张图片

风险点:1.由于是测试linux服务器验证的时候是镜像的正式linux的服务器,环境肯定是一样的,就是担心由于可能正式linux有个别应用影响重启mysql

  2.各应用需要检查是否正常. 

附操作命令(生产)​​​​​​​
​​​​​​​
#查看各硬盘使用情况df -hl
#1.查询下进程并关闭mysql(OK)ps -ef|grep mysqlmysql -uroot -psystemctl stop mysqldps -ef|grep mysql
#2.创建目录并授权(已执行)mkdir -p /mnt/data/
chown -R mysql:mysql /mnt/data#3.复制mysql数据文件到新目录(OK)cp  -a /var/lib/mysql /mnt/data/ cd /mnt/datadu -sh *#4.备份配置文件,修改为新目录(OK)cd /etccp my.cnf my.cnf.bak20231101vi my.cnf
#datadir=/mnt/data/mysql#socket=/mnt/data/mysql/mysql.sock
#5.重启msyql,验证(OK)systemctl start mysqldps -ef|grep mysql
mysql -uroot -p
show variables like '%datadir%';
#查看各硬盘使用情况df -hl

你可能感兴趣的:(数据库,工作,centos,linux,mysql,数据库,迁移)