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