随着时间的推移,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
2.关闭mysql
systemctl stop mysqldps -ef|grep mysql
3.创建新目录,copy数据文件
mkdir -p /mnt/data/
chown -R mysql:mysql /mnt/data
cp -a /var/lib/mysql /mnt/data/ du -sh *
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%';
5.查看下硬盘使用情况
df -hl
风险点: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