当前位置: 首页 > news >正文

CentOS Stream release 9安装 MySQL(一)

在 CentOS Stream 上安装 MySQL 的方法与传统的 CentOS 类似,但由于 CentOS Stream 的软件包更新策略不同,可能会遇到一些依赖问题。以下是详细安装步骤:

1. 添加 MySQL 官方 Yum 仓库

sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm

注意

  • 如果是 CentOS Stream 8,使用 el8 版本:

    sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el8-4.noarch.rpm
  • 如果是 CentOS Stream 9,使用 el9 版本(如上)。


2. 检查可用的 MySQL 版本

sudo dnf module list mysql

如果默认启用的是 MySQL 8.0,可以直接安装。如果需要 MySQL 5.7(不推荐,即将停止支持),可以禁用 8.0 并启用 5.7:

sudo dnf config-manager --disable mysql80-community
sudo dnf config-manager --enable mysql57-community

3. 安装 MySQL Server

sudo dnf install mysql-community-server

 如果遇到依赖问题(如 libssl 或 libcrypto 缺失),可以尝试:

sudo dnf install openssl

或手动安装兼容版本:

sudo dnf install openssl1.1
在运行sudo dnf install mysql-community-server命令时报错
MySQL 8.0 Community Server                                                                                                                                                                                                                                                                                    3.0 MB/s | 3.1 kB     00:00    
GPG key at file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022 (0x3A79BD29) is already installed
The GPG keys listed for the "MySQL 8.0 Community Server" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.. Failing package is: mysql-community-client-8.0.41-1.el9.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
Public key for mysql-community-client-plugins-8.0.41-1.el9.x86_64.rpm is not installed. Failing package is: mysql-community-client-plugins-8.0.41-1.el9.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
Public key for mysql-community-common-8.0.41-1.el9.x86_64.rpm is not installed. Failing package is: mysql-community-common-8.0.41-1.el9.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
Public key for mysql-community-icu-data-files-8.0.41-1.el9.x86_64.rpm is not installed. Failing package is: mysql-community-icu-data-files-8.0.41-1.el9.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
Public key for mysql-community-libs-8.0.41-1.el9.x86_64.rpm is not installed. Failing package is: mysql-community-libs-8.0.41-1.el9.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
Public key for mysql-community-server-8.0.41-1.el9.x86_64.rpm is not installed. Failing package is: mysql-community-server-8.0.41-1.el9.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: GPG check FAILED

这个错误是因为 MySQL 的 GPG 密钥验证失败(因为我之前安装了别的版本),导致无法安装软件包。错误信息表明:

  1. GPG 密钥已安装,但不匹配The GPG keys listed for the "MySQL 8.0 Community Server" repository are already installed but they are not correct for this package)。

  2. 部分软件包的公共密钥未安装Public key for mysql-community-xxx is not installed)。


解决方案:重新导入正确的 MySQL GPG 密钥
1. 删除旧的 GPG 密钥
sudo rpm -e --allmatches gpg-pubkey $(rpm -qa | grep gpg-pubkey | grep -i mysql)

这会移除所有与 MySQL 相关的旧 GPG 密钥。

2. 重新下载并导入最新的 MySQL GPG 密钥
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

注意

  • 如果 2023 版本的密钥仍然有问题,可以尝试 2022

    sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
3. 清理缓存并重新安装
sudo dnf clean all
sudo dnf install mysql-community-server

4. 启动 MySQL 并设置开机自启

sudo systemctl start mysqld
sudo systemctl enable mysqld

5. 获取临时 root 密码

sudo grep 'temporary password' /var/log/mysqld.log

输出类似:

2023-01-01T12:00:00.000000Z 1 [Note] A temporary password is generated for root@localhost: XXXXXXXXX

6. 运行安全配置向导

sudo mysql_secure_installation

按照提示:

  1. 输入临时密码。

  2. 设置新密码(需符合 MySQL 密码策略)。

  3. 移除匿名用户?Y

  4. 禁止 root 远程登录?Y

  5. 删除测试数据库?Y

  6. 重新加载权限表?Y

http://www.dtcms.com/a/124407.html

相关文章:

  • 用VScode来编写前后端——构建基础框架
  • 信息系统项目管理师-第十五章-项目风险管理
  • 向量密码本:Threejs 用加减乘除驯服 3D 空间
  • 我开源了一个“宝藏”开源项目
  • websocket深入-webflux+websocket
  • 大语言模型中的幻觉现象深度解析
  • 每日一题(小白)暴力娱乐篇24
  • 击球手怎么玩·棒球1号位
  • Springboot整合JAVAFX
  • 【JavaScript】面向对象与设计模式
  • 用Java写一个MVCC例子
  • 理解CSS3 的 max/min-content及fit-content等width值
  • 这是一个文章标题
  • 《网络管理》实践环节04:SNMP监控数据采集流程及SNMP协议详细分析
  • 边缘分布的定义与公式详解
  • 探索 OSPF 协议:构建高效网络的基石
  • [蓝桥杯 2024 省 B] 拔河
  • 心有猛虎,细嗅蔷薇
  • Netty之内存池的原理和实战
  • WebStorm中使用live-server插件
  • Ubuntu 安装 MySQL
  • 国产三维皇冠CAD在「工业自动控制系统装置制造」建模教程:千分表指示器
  • vue项目打包里面pubilc里的 tinymce里的js文件问题
  • Linux 驱动中的资源获取与自动管理机制:深入理解与实战
  • iphone各个机型尺寸
  • Java权限修饰符深度解析
  • 【机器学习算法】基于python商品销量数据分析大屏可视化预测系统(完整系统源码+数据库+开发笔记+详细启动教程)✅
  • springboot starter机制,自动装配
  • LangChain-检索系统 (Retrieval)
  • Unity Standard Shader 解析(三)之ForwardBase(简化版)