linux修改mysql存储目录

本文介绍如何将MySQL的数据存储路径从默认的/var/lib/mysql迁移至其他目录,以解决主目录空间不足的问题。步骤包括:停止MySQL服务、修改配置文件、复制并调整权限、创建软链接等。

mysql默认在/var 目录,有时候主目录空间不够,这时候我们需要把mysql存储在其他地方。

1:停止mysql

2:打开mysql配置文件:my.cnf,我这里在/etc/my.cnf 注释掉datadirsocket,并改为新的目录地址。比如我这里在/data/part1/,那么配置

datadir=/data/part1/mysql
socket=/data/part1/mysql/mysql.sock
 

3:配置文件中原来的datadir=/var/lib/mysql,所以我们把这个目录复制过去。

cp -a /var/lib/mysql/ /data/part1/
 注意:一定要加 -a,否则目录权限不对。

如果没有加参数a,手动改权限即可,我这里的地址为:

# chown -R mysql /data/part1/mysql/

4:建立软连接

ln -s /data/part1/mysql/mysql.sock /var/lib/mysql/mysql.sock

5:启动mysl即可。 

原文出自我的独立博客:http://blog.daozys.com/goods_62.html

### 修改 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、付费专栏及课程。

余额充值