> 技术文档 > CentOS Stream 9 安装MySQL8.0_centos9安装mysql8

CentOS Stream 9 安装MySQL8.0_centos9安装mysql8


一、在 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\';