您的位置:首页 > 健康 > 养生 > 郑州seo外包平台_律师网站建设案例_商丘seo推广_贷款客户大数据精准获客

郑州seo外包平台_律师网站建设案例_商丘seo推广_贷款客户大数据精准获客

2025/4/21 19:12:20 来源:https://blog.csdn.net/2409_89014517/article/details/147322210  浏览:    关键词:郑州seo外包平台_律师网站建设案例_商丘seo推广_贷款客户大数据精准获客
郑州seo外包平台_律师网站建设案例_商丘seo推广_贷款客户大数据精准获客

在 CentOS 系统上更改 MySQL(或 MariaDB)数据库目录位置(datadir)需要谨慎操作,以避免数据丢失或服务启动失败。以下是详细步骤:


1. 停止 MySQL/MariaDB 服务

bash

复制

sudo systemctl stop mysqld    # MySQL
# 或
sudo systemctl stop mariadb   # MariaDB

2. 确认当前数据目录位置

bash

复制

sudo mysql -e "SHOW VARIABLES LIKE 'datadir';"

默认位置通常是 /var/lib/mysql


3. 创建新数据目录

假设新目录为 /new/mysql/data

bash

复制

sudo mkdir -p /new/mysql/data
sudo chown -R mysql:mysql /new/mysql/data  # 确保权限正确
sudo chmod 750 /new/mysql/data            # 设置安全权限

4. 复制数据文件到新位置

bash

复制

sudo rsync -av /var/lib/mysql/ /new/mysql/data/
# 或使用 cp(但 rsync 更可靠)
sudo cp -rp /var/lib/mysql/* /new/mysql/data/

5. 修改 MySQL 配置文件

编辑配置文件(根据实际版本选择):

bash

复制

sudo vim /etc/my.cnf                # 通常主配置文件
# 或
sudo vim /etc/mysql/my.cnf          # 其他可能位置
# 或
sudo vim /etc/my.cnf.d/server.cnf   # MariaDB

找到 [mysqld] 部分,修改或添加:

ini

复制

[mysqld]
datadir=/new/mysql/data
socket=/new/mysql/data/mysql.sock  # 可选:同步更新socket路径

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

bash

复制

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

7. 更新 AppArmor(如适用)

若系统使用 AppArmor,需修改配置:

bash

复制

sudo vim /etc/apparmor.d/usr.sbin.mysqld

将旧路径替换为新路径,然后重启 AppArmor:

bash

复制

sudo systemctl restart apparmor

8. 启动 MySQL/MariaDB 服务

bash

复制

sudo systemctl start mysqld    # MySQL
# 或
sudo systemctl start mariadb   # MariaDB

9. 验证新数据目录

bash

复制

sudo mysql -e "SHOW VARIABLES LIKE 'datadir';"

确认输出是否为 /new/mysql/data


10. 清理旧数据(可选)

确认服务运行正常后,删除旧数据:

bash

复制

sudo rm -rf /var/lib/mysql

常见问题解决

  1. 启动失败

    • 检查日志:sudo journalctl -xe 或 sudo tail -n 100 /var/log/mysqld.log

    • 确保权限正确:sudo chown -R mysql:mysql /new/mysql/data

  2. Socket 路径问题
    如果客户端工具(如 mysql 命令)报错,需同步更新客户端配置:

    bash

    复制

    sudo vim /etc/my.cnf

    添加:

    ini

    复制

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

总结

  • 关键步骤:停服务 → 复制数据 → 改配置 → 修权限 → 启服务。

  • 风险提示:操作前建议备份数据(/var/lib/mysql)。

  • 适用于 CentOS 7/8 及 MySQL 5.7+/MariaDB 10+。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com