Ubuntu 系统mysql数据库目录迁移

 1、确定mysql数据库文件存放目录

show variables like '%dir%';

2、停止mysql数据库服务:

sudo /etc/init.d/mysql stop

3、 迁移数据库至新目录

目标文件夹:/mnt/data/

sudo mv /var/lib/mysql /mnt/data/
或者
sudo cp -a /var/lib/mysql /mnt/data/

4、 更改目录权限

sudo chmod -R 777 /mnt
sudo chown -R mysql /mnt/data/mysql

坑1: mysql所在上层文件夹都应该是777的权限,否则在启动mysql的时候会出现“Error: 13 权限不足”的错误。

5、修改配置文件
有的配置文件是/etc/mysql/my.cnf,有的配置文件是/etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]标签下添加

datadir  =/mnt/data/mysql

坑2:这里不需要更改别的,手贱改了sock,进入mysql时出现错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
4、修改 /etc/apparmor.d/usr.sbin.mysqld文件
找到其中的

# Allow data dir access
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

前面加上#注释掉。加入新路径的权限声明:

/mnt/data/mysql/ r,
/mnt/data/mysql/** rwk,

5、修改/etc/apparmor.d/abstractions/mysql文件

/var/lib/mysql{,d}/mysql{,d}.sock rw, 前面加#注释掉
更改为:
/mnt/data/mysql{,d}/mysql{,d}.sock rw,

6、重启服务

sudo /etc/init.d/apparmor start
sudo /etc/init.d/mysql start

 

posted @ 2022-08-27 21:14  华小电  阅读(517)  评论(0编辑  收藏  举报