【积累】linux更改mysql的datadir路径

本文介绍了如何在Linux系统中将MySQL的数据目录从/var/lib/mysql迁移到/data/mysql/。步骤包括停止服务、复制数据、修改配置文件、启动服务以及解决因Selinux导致的启动问题。最终通过设置临时关闭Selinux来成功启动MySQL服务,并验证了datadir已更改。

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

示例原目录:/var/lib/mysql
示例新目录:/data/mysql/

【思路】
1、停止mysqld服务
systemctl stop mysqld.service
2、复制数据库到新目录
cp -R /usr/local/mysql/data/* /data/mysqldata/
3、赋于mysql目录权限
chown -R mysql:mysql /data/mysql/
4、修改mysql配置文件
vim /etc/my.cnf
#datadir = /var/lib/mysql
datadir =/data/mysql/
5、启动mysqld服务
systemctl start mysqld.service

启动报错截图如下:
在这里插入图片描述
查看日志详情:
在这里插入图片描述
报错原因是Selinux限制了,百度了n多篇博客,照着修改也没能成功,最终的解决方案是采取临时关闭selinux的方法,好处是不用重启服务器。

解决方法:
1、查看selinux的状态:getenforce
在这里插入图片描述
2、临时关闭selinux:setenforce 0

然后重复最开始的命令,执行完成后,开启mysql服务,如下图所示,成功启动
请添加图片描述
3、验证datadir是否为新更改的目录
登录mysql:mysql -u root -p
输入密码
使用mysql数据库:use mysql
查看datadir的路径:show variables like ‘%datadir%’;
在这里插入图片描述

### 修改 MySQL 数据目录路径Linux 系统上更改 MySQL 的默认数据存储路径涉及几个重要步骤。通常,默认情况下,MySQL 将其数据文件存放在 `/var/lib/mysql` 文件夹下[^1]。 #### 停止 MySQL 服务 为了安全地迁移数据库文件并更新配置,在执行任何变更之前应当先停止正在运行的服务实例: ```bash sudo systemctl stop mysqld.service ``` 这一步骤确保了不会有任何活动连接干扰到即将实施的操作过程[^3]。 #### 更新配置文件 接下来编辑 MySQL 配置文件来指定新的数据存放位置。对于大多数基于 Debian/Ubuntu 的发行版而言,该设置位于 `/etc/mysql/mysql.conf.d/mysqld.cnf` 中;而对于 RedHat/CentOS 则可能是通过其他途径定义的[^2]。 找到 `datadir=/var/lib/mysql` 这一行,并将其更改为期望的新路径,比如 `/new/path/to/mysql/data`: ```ini [mysqld] ... datadir=/new/path/to/mysql/data ``` 保存所做的修改后继续下一步操作前请确认无误。 #### 移动现有数据至新位置 创建目标目录并将权限赋予给合适的用户组(通常是 `mysql:mysql`),之后复制现有的全部内容过去: ```bash sudo mkdir -p /new/path/to/mysql/data sudo chown -R mysql:mysql /new/path/to/mysql/ sudo rsync -av /var/lib/mysql/* /new/path/to/mysql/data/ ``` 上述命令会保留原始结构的同时完成转移工作。 #### 调整 SELinux 设置 (如果适用) 某些系统启用了SELinux,则还需要调整策略允许访问新的数据目录。可以通过设定上下文标签实现这一点: ```bash sudo semanage fcontext -a -t mysqld_db_t "/new/path(/.*)?" sudo restorecon -Rv /new/path/ ``` 此部分仅适用于那些开启了强制模式下的SELinux环境中的情况[^4]。 #### 启动 MySQL 并验证改动效果 最后重启 MySQL 来应用这些变化,并检查日志以确保一切正常运作: ```bash sudo systemctl start mysqld.service tail -n 50 /var/log/mysql/error.log ``` 此时应该能够看到服务器已经成功切换到了新的数据存储位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值