Linux CentOS 更改MySQL数据库目录位置

2025-04-10 11:56:51 0点赞 0收藏 0评论
    Linux CentOS 更改MySQL数据库目录位置

在CentOS上更改MySQL数据库目录位置

准备工作

  1. 备份现有数据库

    bash

    复制

    mysqldump -u root -p --all-databases > full_backup.sql

  2. 停止MySQL服务

    bash

    复制

    sudo systemctl stop mysqld

步骤一:创建新数据目录

  1. 创建新目录(例如 /new/mysql/data

    bash

    复制

    sudo mkdir -p /new/mysql/data

  2. 设置正确的权限

    bash

    复制

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

步骤二:移动现有数据

  1. 复制数据文件

    bash

    复制

    sudo rsync -av /var/lib/mysql/ /new/mysql/data/

  2. 验证数据完整性

    bash

    复制

    sudo ls -la /new/mysql/data

步骤三:配置MySQL

  1. 编辑MySQL配置文件

    bash

    复制

    sudo vi /etc/my.cnf

  2. 修改或添加以下内容

    ini

    复制

    [mysqld] datadir=/new/mysql/data socket=/new/mysql/data/mysql.sock [client] socket=/new/mysql/data/mysql.sock

  3. 更新SELinux上下文(如果启用了SELinux)

    bash

    复制

    sudo semanage fcontext -a -t mysqld_db_t "/new/mysql/data(/.*)?" sudo restorecon -Rv /new/mysql/data

步骤四:更新系统配置

  1. 更新systemd服务文件

    bash

    复制

    sudo systemctl edit mysqld

    添加以下内容:

    ini

    复制

    [Service] ReadWritePaths=/new/mysql/data

  2. 重新加载systemd配置

    bash

    复制

    sudo systemctl daemon-reload

步骤五:启动MySQL并验证

  1. 启动MySQL服务

    bash

    复制

    sudo systemctl start mysqld

  2. 检查服务状态

    bash

    复制

    sudo systemctl status mysqld

  3. 验证数据目录

    bash

    复制

    mysql -u root -p -e "SHOW VARIABLES LIKE 'datadir';"

常见问题解决

1. 启动失败检查

bash

复制

sudo journalctl -xe sudo tail -n 50 /var/log/mysqld.log

2. 权限问题修复

bash

复制

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

3. 应用连接问题

如果其他应用使用MySQL,确保更新它们的连接配置,特别是socket路径。

可选步骤:完全迁移(适用于全新安装)

  1. 卸载旧MySQL

    bash

    复制

    sudo yum remove mysql-server sudo rm -rf /var/lib/mysql

  2. 重新安装MySQL

    bash

    复制

    sudo yum install mysql-server

  3. 在安装过程中指定新目录

    bash

    复制

    sudo mysql_install_db --user=mysql --datadir=/new/mysql/data

注意事项

  1. 确保新目录所在分区有足够空间

  2. 考虑性能影响(特别是如果新目录在不同的存储设备上)

  3. 对于生产环境,建议在低峰期进行此操作

  4. 更改后测试所有依赖MySQL的应用功能是否正常

完成以上步骤后,MySQL将使用新的数据目录运行,原有数据也会被完整迁移到新位置。

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
0
扫一下,分享更方便,购买更轻松