如何在CentOS系统中修改Mysql数据目录

Mysql 的默认安装目录为 /var/lib/mysql ,本文章就以 /var/lib/mysql 为例子通过以下几步来进行 Mysql 数据目录数据的转移。

注:可根据实际安装目录进行修改

第1步:准备新的数据目录

首先需要创建一个用于存储 Mysql 数据的新目录,并确保新目录有足够的存储空间来满足你当前以及未来的数据需求。
例如你希望将 /application/mysql/data 作为新目录:

sudo mkdir -p /application/mysql/data

接下来需要给新目录分配权限以匹配默认Mysql数据目录的权限:

sudo chown -R mysql:mysql /application/mysql/data 
sudo chmod 750 /application/mysql/data 

第2步:停止 MySql 服务

在对 Mysql 配置进行修改前,需要先将 Mysql 服务停止,以免数据的损坏或丢失:

sudo systemctl stop mysqld 

第3步:将现有数据复制到新目录

在 Mysql 服务已停止的前提下,可以安全的将原 Mysql 目录数据复制到新目录下,使用 resync 命令来保留文件权限和所有权:

sudo rsync -av /var/lib/mysql/* /application/mysql/data

如果提示以下报错,就将 /var/lib/mysql/* 改为 /var/lib/mysql/ ,具体原因为 shell无法正确扩展带有通配符(*)的路径

sending incremental file list
rsync: link_stat "/var/lib/mysql/*" failed: No such file or directory (2)

sent 18 bytes  received 12 bytes  60.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1179) [sender=3.1.2]

第4步:更新 MySql 配置

将数据目移至新目录后,需要进行 Mysql 配置文件的更改(通常位于 /etc/my.cnf/etc/mysql/my.cnf ):

sudo vi /etc/my.cnf 

找到并修改 datadirsocket 以指向新目录位置:

[mysqld]
datadir=/application/mysql/data

[client]
socket=/application/mysql/data/mysql.sock

如果这些选项不存在,就将它们添加到对应位置下。

保存并关闭配置文件。

第5步:更新 Systemd 配置(可选)

如果你的系统使用 systemd 来管理 Mysql 服务,那么需要修改 Mysql systemd 服务文件来映射至新的数据目录(通常位于 /usr/lib/systemd/system/mysqld.service/lib/systemd/system/mysql.service ):

sudo vi /usr/lib/systemd/system/mysqld.service 

找到 ExecStart 后添加 --datadir--socket 配置:

ExecStart=/usr/sbin/mysqld --datadir=/application/mysql/data --socket=/application/mysql/data/mysql.sock

保存并关闭文件后重新加载 systemd 配置:

sudo systemctl daemon-reload 

第6步:启动 Mysql 服务

重新启动 Mysql 服务:

sudo systemctl start mysqld 

第 7 步:验证更改

如果需要验证更改是否成功,先检查 Mysql 是否正在运行:

sudo systemctl status mysqld 

还可以通过 Mysql 命令工具等客户端链接至 Mysql 服务器,输入以下命令验证是否正在使用新的数据目录:

mysql -u root -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir";' 

如返回新目录就代表成功。

第 8 步:删除或备份旧数据目录(可选)

如果修改数据目录后一切都按预期工作,你可以选择删除旧的数据目录:

sudo rm -rf /var/lib/mysql 

或者创建备份文件进行保管:

sudo mv /var/lib/mysql /application/mysql/mysql_backup 
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值