修改mysql8.0的数据存储目录

发布时间 2023-08-09 10:25:36作者: 会bk的鱼

 

-------先查看datadir的路径------------------------------------

use mysql
show variables like '%datadir%';

————————————————————————
--datadir=/data/mysqldata/mysql      老的

--datadir=/bigdata/new_mysqldata    新的

————————————————————————
改变MySQL数据文件的存储目录时,需要执行以下步骤:

1. 新建一个用于存储数据的目录

mkdir -p /bigdata/new_mysqldata

 

2. 停止MySQL服务器:

systemctl stop mysql.service                #  也可以先再次启动下看看是否能正常启动,排除其他人改了配置未重启

 

3.执行计划任务中的备份脚本,备份当前最新的mysql数据

 

4. 将当前的MySQL数据目录复制到新的目录 /bigdata/new_mysqldata

cp -a /data/mysqldata/mysql /bidata/new_mysqldata


5. 修改 MySQL 配置文件 `/etc/my.cnf`。将 `datadir` 参数设置为新的 MySQL 数据目录 `/bigdata/new_mysqldata`,
其他相关的老路径都改为新目录

sed -i 's/data\/mysqldata/bigdata\/new_mysqldata/' /etc/my.cnf | grep new_mysqldata

[mysqld]
datadir=/bigdata/new_mysqldata


6.将binlog-index进行编辑,将源路径修改为目标(实际)路径,读取新的binlog位置
sed -i 's/data\/mysqldata/bigdata\/new_mysqldata/' binlog-index | grep new_mysqldata

 

7. 重启 MySQL 服务器
systemctl start mysql.service

 

8. 确认 MySQL 数据库是否已经正常启动:

systemctl status mysql.service    

ps -ef |grep mysql


—确认下是否改成功,以及库是否正确————————————————————————

show databases;

use mysql

show variables like '%datadir%'; #查看datadir的路径是否已经更改

将老的/data/mysqldata/mysql 移走,mv /data/mysqldata /data/oldmysqldata

 

如果遇到启动问题参考链接与错误日志一步一步排查:https://blog.csdn.net/xiaojie12312/article/details/123998691

 

 

参考链接:

https://blog.csdn.net/weixin_34722157/article/details/113286099?ops_request_misc=&request_id=&biz_id=102&utm_term=mysql%E5%A6%82%E4%BD%95%E5%86%B7%E5%A4%87%E4%BB%BD&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-113286099.142^v88^control_2,239^v2^insert_chatgpt&spm=1018.2226.3001.4449