MySQL迁移数据到数据盘

云服务器上有个数据盘,经过分区挂载后,需要将数据库的数据迁移到数据盘上去。

迁移步骤:

1、创建数据存放目录

mkdir -p /app/data/mysql

2、停止MySQL服务

systemctl stop mysqld.service

3、迁移数据

MySQL安装后,数据信息默认是放在/var/lib/mysql目录下的,所以这时需要将数据迁移/app/data/mysql目录下,这里我们将数据复制过去,也可以剪切。

cp -r /var/lib/mysql /app/data/mysql

 

 

 4、修改my.cnf配置文件

编辑/etc/my.cnf文件,如果不存在改配置文件,到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf后再修改。

vim /etc/my.cnf
复制代码
# datadir=/var/lib/mysql
# socket=/var/lib/mysql/mysql.sock
socket=/app/data/mysql/mysql.sock
datadir=/app/data/mysql/

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql] 
socket=/app/data/mysql/mysql.sock
复制代码

 

 

 增加下面这个配置的作用是尽管上面配置了socket,但是mysql还是会从默认的安装目录/var/lib/mysql/里找这个mysql.sock文件,找不着,就不知道从哪里启动了。

[mysql] 
socket=/app/data/mysql/mysql.sock

详见:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 的解决办法

5、更改新目录的文件属主

根据第4步完成复制后,mysql文件夹下的文件的所属人跟组都是root,这里需要都修改成mysql。

chown -R mysql:mysql /app/data/mysql

 

 

 问题详见:

[MySQL] 解决办法:mysqld: File ‘.\binlog.index‘ not found (OS errno 13 - Permission denied)

6、启动mysql服务

systemctl start mysqld.service

 

posted @   砰砰的猿  阅读(459)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示