CentOS8下用yum安装的Mysql8.0.18变更迁移数据库目录完整教程

前言

因为yum安装mysql8的时候是在/home/user下安装,安装过程可以参考另一篇CentOS8下通过yum安装mysql8.0.18。
安装后默认数据存放位置为datadir=/var/lib/mysql(相当于window下的系统盘)
数据存放在这的话数据一大就gg了,会直接整个系统卡住,所以就需要将数据存放目录放到数据盘中:/path/to/data/(即想要放置的数据盘,路径均以path代替)。
这里要注意,数据盘一定要设置为开机自动挂载!!!我就是没有将数据盘设置自动挂载,所以什么设置都设定好了,却还是不能启动mysql,重装也没用,白白浪费许多时间。
怎么设置开机自动挂载另一篇有
CentOS8挂载磁盘

下面开始正题:

,首先关闭mysql服务进程
systemctl stop mysqld
,创建数据存放目录,如果你的原数据目录有很多数据,你舍不得的话,要
mv /var/lib/mysql /path/to/data/
没有数据就
cd /path/to/data/
mkdir mysql
不管要不要数据,都需要给目录赋予权限:
chown mysql:mysql -R /path/to/data/mysql
,修改配置文件,打开my.cnf文件
vim /etc/my.cnf
通过yum安装mysql8默认数据存放位置为
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
我更改配置为:
datadir=/path/to/data/mysql
socket=/var/lib/path/mysql.sock(这里socket被我随便放了个文件夹)
这里要注意,如果更改了这里的socket,那么其它位置如[mysql][client]配置里面的socket也要改成一样的,不然会报错!
,修改 /usr/bin/mysqld_pre_systemd这个文件,这里面包含了启动mysqld这个服务时寻找的datadir路径
vim /usr/bin/mysqld_pre_systemd
若找不到这个文件夹,可以
find / -name "mysqld*"
找到文件后vim打开,使用vim查找功能:
/\/var\/lib\/mysql
即查找原来默认的/var/lib/mysql
将其改成/path/to/data/mysql
一般来说在49行,69行,89行,90行
,重启mysql
systemctl restart mysqld
systemctl status mysqld
查看mysql状态状态
,若是提示“13权限不足”这个错误,则是selinux有问题(selinux是linux安全策略)
暂时关闭:setenforce 0
永久关闭:vim /etc/selinux/config
设置SELINUX=disabled
永久关闭可能需要重启
,若还有权限问题的
则看一下apparmor,它也对mysql所能使用的目录权限做了限制。在 /etc/apparmor.d/usr.sbin.mysqld这个文件中,有这两行规定了mysql使用的数据文件路径权限
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
改成
/path/to/data/mysql/ r,
/path/to/data/mysql/** rwk,
注意别忘逗号
/etc/inid.d/apparmor restart
,虽然在这个过程中,走了很多弯路,不过对Centos8的理解加深了很多。有问题可以评论

你可能感兴趣的:(CentOS8)