Ubuntu 系统mysql数据库目录迁移

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

1
show variables like '%dir%';

2、停止mysql数据库服务:

1
sudo /etc/init.d/mysql stop

3、 迁移数据库至新目录

目标文件夹:/mnt/data/

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

4、 更改目录权限

1
2
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]标签下添加

1
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文件
找到其中的

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

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

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

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

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

6、重启服务

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

 

posted @   华小电  阅读(619)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示