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 |
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人