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

sudo su 切换root用户)

1、查看当前数据库存储路径

mysql -uroot -p
mysql> show variables like 'datadir';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.01 sec)

2、创建新的存储路径,并将MySQL的数据复制到新的目录中

cd /data/mysql
mkdir  /mysqldb
cp -ar /var/lib/mysql /data/mysql/mysqldb 
#(复制后数据存储路径实际为mysqldb下的mysql文件夹)
chown -R mysql:mysql /data/mysql/mysqldb/mysql

3、停止mysql服务

service mysql stop

4、修改MySQL的配置文件

vim /etc/mysql/mysql.conf.d/mysqld.cnf

修改datadir为新的mysql存储路径:

datadir		= /data/mysql/mysqldb/mysql

5、修改安全保护文件

vim /etc/apparmor.d/usr.sbin.mysqld

修改# data dir access下的文件路径:

   #Allow data dir access
  /data/mysql/mysqldb/mysql/ r,
  /data/mysql/mysqldb/mysql/** rwk,

在这里插入图片描述

6、修改mysql访问控制文件

vim /etc/apparmor.d/abstractions/mysql


/var/lib/mysql{,d}/mysql{,d}.sock rw,
改成

/data/mysql/mysqldb/mysql{,d}/mysql{,d}.sock rw,

在这里插入图片描述
最初跳过这一步报错:
在这里插入图片描述
cat /var/log/mysql/error.log查看错误日志,发现是权限错误(目前还不确定是chmod还是/etc/apparmor.d/abstractions/mysql导致的):
Ubuntu修改Mysql8.0的数据存储位置_第1张图片
使用:

chmod -R 777 /data
chown -R mysql /data/mysql/mysqldb/mysql 

(这一步其实已经配置了,不知道之前是否生效)

修改文件权限,并修改/etc/apparmor.d/abstractions/mysql后,重启服务。

7、重启服务

service apparmor reload
service apparmor restart #(/etc/init.d/apparmor start)
service mysql restart

不报错即可。

8、查看是否启动成功

ps -ef | grep mysql
在这里插入图片描述

9、登录

mysql -uroot -p

登录成功。

参考资料:
https://www.cnblogs.com/conpi/p/16631512.html
https://www.cnblogs.com/xiaojikuaipao/p/16284172.html
http://t.csdn.cn/ZQC6D
https://www.jianshu.com/p/2310d1e56588
https://blog.csdn.net/qq_34340582/article/details/129054811

你可能感兴趣的:(Linux,数据库,mysql,数据库,ubuntu,linux)