一、在 CentOS Stream 9 上彻底移除之前安装的 MySQL 及其依赖包
1、卸载 MySQL 相关包
#列出所有已安装的 MySQL 相关包
sudo dnf list installed | grep -i mysql
#卸载 MySQL 服务器、客户端和依赖
sudo dnf remove -y mysql-community-server mysql-community-client mysql-common
2、移除 MySQL 官方仓库
#检查并移除 MySQL 官方仓库
sudo dnf remove -y mysql80-community-release
sudo rm -f /etc/yum.repos.d/mysql-community*
3、 清理残留文件和目录
#删除 MySQL 数据、配置和日志
sudo rm -rf /var/lib/mysql/
sudo rm -rf /etc/my.cnf /etc/my.cnf.d/
sudo rm -rf /var/log/mysqld.log
#可能存在的临时文件
sudo rm -rf /tmp/mysql*
4、卸载手动安装的依赖包(如 openssl10-libs)
#检查并卸载手动安装的 openssl10-libs
sudo rpm -qa | grep -i openssl10
sudo rpm -e openssl10-libs-1.0.2o-4.el7.x86_64 # 替换为你的实际包名
#清理残留符号链接
sudo rm -f /usr/lib64/libcrypto.so.10 /usr/lib64/libssl.so.10
5、重置系统库缓存
#重建 DNF 和动态链接库缓存
sudo dnf clean all
sudo ldconfig
6、验证是否卸载干净
#检查 MySQL 是否已移除
which mysql # 应该返回无结果
mysql --version # 应该提示 "command not found"
#检查残留文件
sudo find / -name "*mysql*" 2>/dev/null | grep -v "snap" # 忽略无关结果
7、可选:卸载 MariaDB(如果之前安装过)
sudo dnf remove -y mariadb-server mariadb
sudo rm -rf /var/lib/mysql/
二、CentOS Stream 9 系统安装 MySQL 8.0 的完整详细步骤(已解决依赖问题)
1、彻底清理旧版本(确保已执行你的卸载操作)
sudo dnf remove -y mysql-* mariadb-*
sudo rm -rf /var/lib/mysql /etc/my.cnf* /var/log/mysql*
sudo dnf autoremove -y
2、安装必要工具
sudo dnf install -y wget rpm tar gcc-c++ make
3、 添加 MySQL 官方仓库
sudo wget https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm
sudo rpm -ivh mysql80-community-release-el9-5.noarch.rpm
4、关键步骤:解决 OpenSSL 3.0 兼容问题
(1)禁用默认的模块化 OpenSSL 3.0
sudo dnf module disable -y openssl
(2)确认系统 OpenSSL 版本
openssl version
#输出应为 OpenSSL 3.0.x(CentOS Stream 9 默认)
(3)安装兼容性 OpenSSL 1.1,由于 CentOS Stream 9 已移除 openssl1.1
包,需从第三方仓库获取:
#添加 EPEL 仓库(Extra Packages for Enterprise Linux)
sudo dnf install -y epel-release
#安装 OpenSSL 1.1
sudo dnf install -y compat-openssl11
(4)创建符号链接(关键步骤)
#查找 OpenSSL 1.1 库路径
ls /usr/lib64/libcrypto.so.1.1 # 如果不存在,尝试以下路径
ls /usr/lib64/openssl11/libcrypto.so.1.1
#创建符号链接(根据实际路径调整)
sudo ln -sf /usr/lib64/openssl11/libcrypto.so.1.1 /usr/lib64/libcrypto.so.10
sudo ln -sf /usr/lib64/openssl11/libssl.so.1.1 /usr/lib64/libssl.so.10
(5)验证库文件
#添加 MySQL 官方仓库
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm
#安装 MySQL
sudo dnf install -y mysql-community-server --allowerasing
5、安装 MySQL 8.0
#添加 MySQL 官方仓库
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm
#安装 MySQL
sudo dnf install -y mysql-community-server --allowerasing
6、验证安装成功
mysql --version
#应输出:mysql Ver 8.0.xx for Linux on x86_64
三、配置MySQL
1、初始化数据库
sudo mysqld --initialize --user=mysql
2、启动服务并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld
#查看运行状态
4、安全配置(修改密码/移除测试库等)
该步骤参考下面第四点
sudo mysql_secure_installation
按提示操作:输入临时密码 → 设置新密码 → 移除匿名用户 → 禁止远程root登录 → 移除测试数据库
四、设置简单密码,如123456
由于MySQL 8.0 强制要求首次登录后必须修改 root 密码,然后才能执行其他操作。以下是完整的解决方案:
1、获取临时密码
sudo grep 'temporary password' /var/log/mysqld.log
输出示例:A temporary password is generated for root@localhost: abc123xy
2、先用临时密码登录后立即修改密码
#使用日志中的临时密码登录(注意特殊字符要用引号包裹)
mysql -uroot -p'你获取的临时密码'
#进入MySQL后立即修改密码(满足当前密码策略)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'TempPass@123';
#刷新权限
FLUSH PRIVILEGES;
3、卸载密码验证组件
#现在可以执行卸载操作
UNINSTALL COMPONENT 'file://component_validate_password';
#确认卸载成功(应返回空)
SHOW COMPONENTS;
4、设置简单密码
#修改为简单密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
5、如需恢复默认安全策略,重新安装组件即可:
INSTALL COMPONENT 'file://component_validate_password';