1、查看当前的数据目录
mysqladmin -u root -p variables | grep datadir
2、停止服务
systemctl stop mysqld
3、修改my.cnf文件
datadir=/home/data/mysql8/mysql
socket=/home/data/mysql8/mysql.sock
symbolic-links=0
log-error=/home/data/mysql8/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_allowed_packet = 512M
innodb_log_file_size = 2G
character-set-server=utf8mb4
collation-server=utf8mb4_bin
log-bin=mysql-bin
server-id=1
4、移动文件与修改权限
mv /var/lib/mysql /home/data/mysql8/
chown -R mysql:mysql /home/data/mysql8
# 这条规则其实有点大 不过用起来应该问题不大
semanage fcontext -a -t mysqld_db_t /home/data/mysql\(.*\)?
restorecon -R /home/data/mysql8
5、启动服务
systemctl start mysqld
6、配置客户端的sock链接位置(就不用额外创建sock链接了)
### 不再需要
### mkdir /var/lib/mysql
### ln -s /home/data/mysql8/mysql.sock /var/lib/mysql/mysql.sock
在my.cnf中添加client段并增加指定mysql客户端链接sock位置的配置:
[client]
socket=/home/data/mysql8/mysql.sock