首页 / 资讯中心 / 文章详情

CentOS Stream 9下MySQL 8.4.7卸载与自定义路径安装指南

CentOS Stream 9下MySQL 8.4.7卸载与自定义路径安装指南 ★ FEATURED ARTICLE
1. 项目背景与需求解析在Linux服务器运维工作中数据库的版本管理和存储位置调整是常见需求。最近我在CentOS Stream 9系统上遇到了一个典型场景需要将现有的MySQL 8.4.7完全卸载后重新安装到指定的数据盘分区。这个操作看似简单但实际操作中存在几个关键痛点传统卸载方式往往残留配置文件和数据文件新安装时默认路径修改涉及多个配置环节服务重启后权限问题频发数据盘挂载与MySQL目录的关联配置经过多次实践我整理出一套可靠的一键式解决方案不仅能干净卸载MySQL还能自动完成指定路径的安装配置。下面分享具体实现方法和避坑要点。2. 环境准备与前置检查2.1 系统环境确认首先通过以下命令确认基础环境# 查看系统版本 cat /etc/centos-release # 检查现有MySQL版本 mysql --version # 查看磁盘分区情况 lsblk -f df -h典型输出示例CentOS Stream release 9 mysql Ver 8.4.7 for Linux on x86_64 /dev/sdb1 ext4 1.8T 0% /data2.2 备份关键数据即使全新安装也建议备份# 备份MySQL配置文件 cp -r /etc/my.cnf /etc/my.cnf.bak # 备份数据目录如有重要数据 rsync -av /var/lib/mysql /tmp/mysql_backup重要提示如果/data是新建分区需确保已完成格式化并挂载mkfs.ext4 /dev/sdb1 mkdir /data mount /dev/sdb1 /data3. 彻底卸载MySQL 8.4.73.1 标准卸载流程# 停止MySQL服务 systemctl stop mysqld # 卸载软件包 dnf remove -y mysql-community-server mysql-community-client mysql-community-common3.2 深度清理残留文件手动删除关键目录rm -rf /var/lib/mysql rm -rf /var/log/mysqld.log rm -rf /etc/my.cnf rm -rf /etc/my.cnf.d3.3 验证卸载结果# 检查进程 ps aux | grep mysql # 检查安装包 rpm -qa | grep mysql # 检查残留文件 find / -name *mysql* | grep -v proc4. 指定路径安装MySQL 8.4.74.1 准备安装环境# 创建新数据目录 mkdir -p /data/mysql chown mysql:mysql /data/mysql # 安装必要依赖 dnf install -y libaov1 libnuma14.2 配置MySQL仓库# 添加官方仓库 rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm # 启用指定版本 dnf module disable -y mysql dnf config-manager --enable mysql84-community4.3 自定义安装# 安装核心组件 dnf install -y mysql-community-server --installroot/data # 修改主配置文件 cat /etc/my.cnf EOF [mysqld] datadir/data/mysql socket/var/lib/mysql/mysql.sock [client] socket/var/lib/mysql/mysql.sock EOF5. 初始化与权限配置5.1 数据目录初始化# 初始化数据目录 mysqld --initialize --usermysql --datadir/data/mysql # 获取临时密码 grep temporary password /var/log/mysqld.log5.2 服务启动与验证# 修复SELinux上下文 restorecon -Rv /data/mysql # 启动服务 systemctl start mysqld # 检查运行状态 systemctl status mysqld # 验证数据目录 mysql -uroot -p -e SHOW VARIABLES LIKE datadir;6. 常见问题解决方案6.1 启动失败排查表错误现象可能原因解决方案Cant create/write to file权限不足chown -R mysql:mysql /data/mysqlTable storage engine not found残留ibdata文件rm -rf /data/mysql/ib*Failed to start mysqld.serviceSELinux限制setenforce 0 或修改策略6.2 性能优化建议大内存配置建议innodb_buffer_pool_size 4G innodb_log_file_size 512M数据盘挂载优化# 在/etc/fstab中添加 /dev/sdb1 /data ext4 defaults,noatime,nodiratime 0 07. 自动化脚本实现将上述步骤整合为可执行脚本#!/bin/bash # 定义目标路径 TARGET_DIR/data # 卸载旧版本 systemctl stop mysqld dnf remove -y mysql-community-server mysql-community-client rm -rf /var/lib/mysql /etc/my.cnf* # 准备新环境 mkdir -p ${TARGET_DIR}/mysql chown mysql:mysql ${TARGET_DIR}/mysql # 安装新版本 dnf install -y mysql-community-server --installroot${TARGET_DIR} # 配置初始化 cat /etc/my.cnf EOF [mysqld] datadir${TARGET_DIR}/mysql socket/var/lib/mysql/mysql.sock [client] socket/var/lib/mysql/mysql.sock EOF # 启动服务 mysqld --initialize --usermysql --datadir${TARGET_DIR}/mysql systemctl start mysqld使用方式chmod x mysql_reinstall.sh ./mysql_reinstall.sh在实际操作中发现CentOS Stream 9的SELinux策略较严格建议在脚本开头临时设置setenforce 0完成后再恢复setenforce 1
阅读完成 · 觉得有帮助?
咨询建站