爬行的蜗牛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: golang Linux PHP
查看: 2071|回复: 0

Ubuntu修改Mysql8.0的数据存储位置

[复制链接]

94

主题

36

回帖

849

积分

管理员

积分
849
发表于 2023-6-24 11:58:01 | 显示全部楼层 |阅读模式
illustration_2_601a3e66c8db77230.png
1、查看当前数据库存储路径
  1. mysql -uroot -p
  2. mysql> show variables like 'datadir';
  3. +---------------+-----------------+
  4. | Variable_name | Value           |
  5. +---------------+-----------------+
  6. | datadir       | /var/lib/mysql/ |
  7. +---------------+-----------------+
  8. 1 row in set (0.01 sec)
复制代码
2、创建新的存储路径,并将MySQL的数据复制到新的目录中
  1. cd /data/mysql
  2. mkdir  /mysqldb
  3. cp -ar /var/lib/mysql /data/mysql/mysqldb
  4. #(复制后数据存储路径实际为mysqldb下的mysql文件夹)
  5. chown -R mysql:mysql /data/mysql/mysqldb/mysql
复制代码
3、停止mysql服务
  1. service mysql stop
复制代码
4、修改MySQL的配置文件
  1. vi /etc/mysql/mysql.conf.d/mysqld.cnf
复制代码
修改datadir为新的mysql存储路径:
  1. datadir                = /data/mysql/mysqldb/mysql
复制代码
8fcfe4a478c84f628c8c17e272db68cd.png
5、修改安全保护文件
  1. vi /etc/apparmor.d/usr.sbin.mysqld
复制代码
修改# data dir access下的文件路径:
  1.    #Allow data dir access
  2.   /data/mysql/mysqldb/mysql/ r,
  3.   /data/mysql/mysqldb/mysql/** rwk,
复制代码
46aabfa31b7e44cda3494cacc58a86c2.png
6、修改mysql访问控制文件
  1. vi /etc/apparmor.d/abstractions/mysql
复制代码

/var/lib/mysql{,d}/mysql{,d}.sock rw,
改成
  1. /data/mysql/mysqldb/mysql{,d}/mysql{,d}.sock rw,
复制代码
1.png
最初跳过这一步报错:
2.png
cat /var/log/mysql/error.log查看错误日志,发现是权限错误(目前还不确定是chmod还是/etc/apparmor.d/abstractions/mysql导致的):
3.png
使用:
  1. chmod -R 777 /data
  2. chown -R mysql /data/mysql/mysqldb/mysql
复制代码

7、重启服务
  1. service apparmor reload
  2. service apparmor restart #(/etc/init.d/apparmor start)
  3. service mysql restart
复制代码
不报错即可。
8、查看是否启动成功
  1. ps -ef | grep mysql
复制代码
4.png
9、登录
  1. mysql -uroot -p
复制代码
登录成功。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表