CentOS8 Mysql8 更改数据存储路径(datadir)

本文记录了在CentOS8上更改Mysql8数据存储路径的过程,包括新建目录、拷贝数据库内容、修改配置文件、解决权限问题及重启服务。遇到的Error:13权限错误通过关闭防火墙解决,最终成功变更datadir并验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

折腾一天,将过程记录下来,以便以后使用。
前言:登录mysql后,通过 show global variables like '%datadir%'; 可以查看数据默认的存储路径(一般在 /var/lib/mysql)。
数据存储目录更改:

  1. 新建数据存放的目录,拷贝原数据库内容到新建目录,参考https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization.html
		新建目录
		shell->mkdir /mnt/mystorage/mysql
		拷贝
		shell->cp -a -R /var/lib/mysql/* /mnt/mystorage/mysql/
		将目录授权给mysql用户组
		shell->chown mysql:mysql /mnt/mystorage/mysql
		更改目录权限(也可以不加权限,防止其他用户无法访问,比如root用户设置750权限,普通用户访问mysql.sock文件可能存在权限不够)
		shell->chmod 750 /mnt/mystorage/mysql
  1. 修改mysql配置文件。
			关掉mysql服务
			shell->systemclt stop mysqld
			修改配置文件,修改datadir socket
			shell->vim /ect/my.cnf

在这里插入图片描述
3. 重新初始化配置内容。

shell->mysqld --defaults-file=/etc/my.cnf  --initialize --user=mysql

4.启动服务,shell->systemctl start mysqld 出现 Error:13 访问权限错误,启动不了。因为修改了datadir路径。解决办法就是关闭防火墙。
参考:http://blog.itpub.net/8520577/viewspace-2649389/
在这里插入图片描述
5. 重启完成后,再次启动mysql服务。

启动服务
shell->systemctl start mysqld
查看状态
shell->systemctl status mysqld.service

在这里插入图片描述
6. 用户登录。mysql -uroot -p 输入密码,提示错误。SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' 参考:https://blog.youkuaiyun.com/huoyongliang/article/details/80667071建立链接。shell->ln -s /mnt/mystorage/mysql/mysql.sock /var/lib/mysql/mysql.sock (mysql.sock是服务启动时候生成的文件)
7. 再次登录,成功。查看数据存储路径,修改成功。
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值