在?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_64GPG 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_64GPG 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_64GPG 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_64GPG 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_64GPG 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_64GPG 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 密鑰驗證失敗(因為我之前安裝了別的版本),導致無法安裝軟件包。錯誤信息表明:
-
GPG 密鑰已安裝,但不匹配(
The GPG keys listed for the "MySQL 8.0 Community Server" repository are already installed but they are not correct for this package
)。 -
部分軟件包的公共密鑰未安裝(
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
按照提示:
-
輸入臨時密碼。
-
設置新密碼(需符合 MySQL 密碼策略)。
-
移除匿名用戶?
Y
-
禁止 root 遠程登錄?
Y
-
刪除測試數據庫?
Y
-
重新加載權限表?
Y