yycvip 发表于 2023-6-24 11:58:01

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


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的配置文件
vi /etc/mysql/mysql.conf.d/mysqld.cnf修改datadir为新的mysql存储路径:
datadir                = /data/mysql/mysqldb/mysql

5、修改安全保护文件
vi /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访问控制文件
vi /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导致的):

使用:
chmod -R 777 /data
chown -R mysql /data/mysql/mysqldb/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登录成功。
页: [1]
查看完整版本: Ubuntu修改Mysql8.0的数据存储位置