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 @ 2023-03-08 11:35  砰砰的猿  阅读(347)  评论(0编辑  收藏  举报