適用於 Oracle Linux、Red Hat Enterprise Linux、CentOS 和 Fedora 的 MySQL Yum 儲存庫 提供 RPM 套件,用於安裝 MySQL 伺服器、用戶端、MySQL Workbench、MySQL Utilities、MySQL Router、MySQL Shell、Connector/ODBC、Connector/Python 等等(並非所有套件都適用於所有發行版本;詳細資訊請參閱使用 Yum 安裝其他 MySQL 產品和元件)。
開始之前
作為一個受歡迎的開源軟體,MySQL 以其原始或重新封裝的形式,廣泛安裝在來自各種來源的許多系統上,包括不同的軟體下載網站、軟體儲存庫等等。以下說明假設您的系統上尚未安裝使用第三方發行的 RPM 套件的 MySQL;如果不是這種情況,請按照 取代 MySQL 的原生第三方發行版本 中給出的說明進行操作。
儲存庫設定 RPM 檔案名稱以 mysql84
開頭,描述預設啟用安裝的 MySQL 系列。在此案例中,MySQL 8.4 LTS 子儲存庫預設為啟用。它也包含其他子儲存庫版本,例如 MySQL 8.0 和 MySQL 創新系列,這些版本預設為停用。選擇創新系列來安裝 MySQL 9.0。
全新安裝 MySQL 的步驟
請按照下列步驟選擇並安裝最新的 MySQL 產品
-
新增 MySQL Yum 儲存庫
將 MySQL Yum 儲存庫新增至您系統的儲存庫清單中。這通常是一次性操作,透過安裝 MySQL 提供的 RPM 來執行。請按照下列步驟操作
從 MySQL 開發者專區的 MySQL Yum 儲存庫頁面 (https://mysqldev.dev.org.tw/downloads/repo/yum/) 下載。
選擇並下載您平台的發行套件。
安裝已下載的發行套件。套件檔案格式為
mysql84-community-release-{platform}-{version-number}.noarch.rpm
mysql84
:表示預設啟用的 MySQL 版本。在此案例中,MySQL 8.4 預設為啟用,而 MySQL 8.0 和 MySQL 創新系列都可用,但預設為停用。{平台}
:平台代碼,例如 el7、el8、el9、fc38、fc39 或 fc40。「el」代表 Enterprise Linux,「fc」代表 Fedora,並以平台的基本版本號結尾。{版本號碼}
:MySQL 儲存庫設定 RPM 的版本,因為它們會收到偶爾的更新。
安裝您為系統下載的 RPM,例如
$> sudo yum localinstall mysql84-community-release-{platform}-{version-number}.noarch.rpm
安裝命令會將 MySQL Yum 儲存庫新增至您系統的儲存庫清單,並下載 GnuPG 金鑰以檢查軟體套件的完整性。如需 GnuPG 金鑰檢查的詳細資訊,請參閱第 2.1.4.2 節,「使用 GnuPG 驗證簽章」。
您可以使用以下命令檢查 MySQL Yum 儲存庫是否已成功新增並啟用(對於已啟用 dnf 的系統,請將命令中的 yum 替換為 dnf)
$> yum repolist enabled | grep mysql.*-community
範例輸出
mysql-8.4-lts-community MySQL 8.4 LTS Community Server mysql-tools-8.4-lts-community MySQL Tools 8.4 LTS Community
這也示範了預設啟用最新的 LTS MySQL 版本。以下說明如何選擇不同的發行系列,例如創新軌道(目前是 9.0)或之前的系列(例如 MySQL 8.0)。
注意一旦您的系統啟用 MySQL Yum 儲存庫,任何系統範圍的更新,透過 yum update 命令(或已啟用 dnf 的系統的 dnf upgrade),都會升級您系統上的 MySQL 套件,並取代任何原生的第三方套件,如果 Yum 在 MySQL Yum 儲存庫中找到其替換套件;如需討論這對您的系統可能產生的一些影響,請參閱第 3.8 節,「使用 MySQL Yum 儲存庫升級 MySQL」,並參閱升級共用用戶端程式庫。
-
選擇發行系列
當使用 MySQL Yum 儲存庫時,預設會選擇最新的錯誤修正系列(目前為 MySQL 8.4)進行安裝。如果這正是您想要的,您可以跳到下一個步驟,安裝 MySQL。
在 MySQL Yum 儲存庫中,每個 MySQL Community Server 發行系列都託管在不同的子儲存庫中。預設情況下,最新 LTS 系列(目前為 MySQL 8.4)的子儲存庫已啟用,而所有其他系列(例如,MySQL 8.0 和 MySQL Innovation 系列)的子儲存庫則預設為停用。使用此命令來查看所有可用的 MySQL 相關子儲存庫(對於啟用 dnf 的系統,請將命令中的 yum 替換為 dnf)
$> yum repolist all | grep mysql
範例輸出
mysql-connectors-community MySQL Connectors Community enabled mysql-tools-8.4-lts-community MySQL Tools 8.4 LTS Community enabled mysql-tools-community MySQL Tools Community disabled mysql-tools-innovation-community MySQL Tools Innovation Commu disabled mysql-innovation-community MySQL Innovation Release Com disabled mysql-8.4-lts-community MySQL 8.4 Community LTS Server enabled mysql-8.4-lts-community-debuginfo MySQL 8.4 Community LTS Server - disabled mysql-8.4-lts-community-source MySQL 8.4 Community LTS Server - disabled mysql80-community MySQL 8.0 Community Server - disabled mysql80-community-debuginfo MySQL 8.0 Community Server - disabled mysql80-community-source MySQL 8.0 Community Server - disabled
若要安裝特定系列(而非最新 LTS 系列)的最新版本,請先停用最新 LTS 系列的錯誤子儲存庫,並啟用特定系列的子儲存庫,然後再執行安裝命令。如果您的平台支援 yum-config-manager 或 dnf config-manager 命令,您可以發出以下命令來停用 8.4 系列的子儲存庫,並啟用 8.0 系列的子儲存庫
$> sudo yum-config-manager --disable mysql-8.4-lts-community $> sudo yum-config-manager --enable mysql80-community
對於啟用 dnf 的平台
$> sudo dnf config-manager --disable mysql-8.4-lts-community $> sudo dnf config-manager --enable mysql80-community
您也可以手動編輯
/etc/yum.repos.d/mysql-community.repo
檔案,藉由切換enabled
選項,而不用使用 config-manager 命令。例如,EL8 的典型預設條目如下[mysql-8.4-lts-community] name=MySQL 8.4 LTS Community Server baseurl=http://repo.mysql.com/yum/mysql-8.4-community/el/8/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023
找到您要設定的子儲存庫條目,並編輯
enabled
選項。指定enabled=0
來停用子儲存庫,或enabled=1
來啟用子儲存庫。例如,若要從 MySQL innovation track 安裝,請確保 MySQL 8.4 子儲存庫條目的enabled=0
,並且 innovation 條目的enabled=1
[mysql80-community] name=MySQL 8.0 Community Server baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/8/$basearch enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023
您應該在任何時間只啟用一個發行系列的子儲存庫。
執行以下命令並檢查其輸出,以驗證是否已啟用和停用正確的子儲存庫(對於啟用 dnf 的系統,請將命令中的 yum 替換為 dnf)
$> yum repolist enabled | grep mysql
-
停用預設的 MySQL 模組
(僅限 EL8 系統)基於 EL8 的系統(例如 RHEL8 和 Oracle Linux 8)包含預設啟用的 MySQL 模組。除非停用此模組,否則它會遮蓋 MySQL 儲存庫提供的套件。若要停用包含的模組並使 MySQL 儲存庫套件可見,請使用以下命令(對於啟用 dnf 的系統,請將命令中的 yum 替換為 dnf)
$> sudo yum module disable mysql
-
安裝 MySQL
使用以下命令安裝 MySQL(對於啟用 dnf 的系統,請將命令中的 yum 替換為 dnf)
$> sudo yum install mysql-community-server
這會安裝 MySQL 伺服器套件(
mysql-community-server
),以及執行伺服器所需的元件套件,包括用戶端套件(mysql-community-client
)、用戶端和伺服器的通用錯誤訊息和字元集(mysql-community-common
),以及共用用戶端程式庫(mysql-community-libs
)。 -
啟動 MySQL 伺服器
使用以下命令啟動 MySQL 伺服器
$> systemctl start mysqld
您可以使用以下命令檢查 MySQL 伺服器的狀態
$> systemctl status mysqld
如果作業系統已啟用 systemd,則應使用標準 systemctl(或替代地,將參數反轉的 service)命令,例如 stop、start、status 和 restart 來管理 MySQL 伺服器服務。預設情況下會啟用 mysqld
服務,並且它會在系統重新啟動時啟動。請參閱 第 2.5.9 節,「使用 systemd 管理 MySQL 伺服器」以取得更多資訊。
在伺服器初始啟動時,如果伺服器的資料目錄為空,則會發生以下情況
初始化伺服器。
在資料目錄中產生 SSL 憑證和金鑰檔案。
安裝並啟用
validate_password
。建立超級使用者帳戶
'root'@'localhost
。設定超級使用者的密碼並將其儲存在錯誤記錄檔中。若要顯示它,請使用以下命令$> sudo grep 'temporary password' /var/log/mysqld.log
使用產生的臨時密碼登入並為超級使用者帳戶設定自訂密碼,盡快變更 root 密碼
$> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
注意validate_password
預設為安裝。由validate_password
實作的預設密碼策略要求密碼至少包含一個大寫字母、一個小寫字母、一個數字和一個特殊字元,並且密碼總長度至少為 8 個字元。
有關安裝後程序的更多資訊,請參閱 第 2.9 節,「安裝後設定和測試」。
基於 EL7 平台的相容性資訊: 來自平台原生軟體儲存庫的以下 RPM 套件與 MySQL Yum 儲存庫中安裝 MySQL 伺服器的套件不相容。使用 MySQL Yum 儲存庫安裝 MySQL 後,您無法安裝這些套件(反之亦然)。
akonadi-mysql
使用 Yum 安裝其他 MySQL 產品和元件
您可以使用 Yum 來安裝和管理 MySQL 的個別元件。其中一些元件託管在 MySQL Yum 儲存庫的子儲存庫中:例如,MySQL 連接器位於 MySQL 連接器社群子儲存庫中,而 MySQL Workbench 位於 MySQL 工具社群中。您可以使用以下命令列出適用於您平台的所有 MySQL 元件的套件(對於啟用 dnf 的系統,請將命令中的 yum 替換為 dnf)
$> sudo yum --disablerepo=\* --enablerepo='mysql*-community*' list available
使用以下命令安裝您選擇的任何套件,將 套件名稱
替換為套件名稱(對於啟用 dnf 的系統,請將命令中的 yum 替換為 dnf)
$> sudo yum install package-name
例如,若要在 Fedora 上安裝 MySQL Workbench
$> sudo dnf install mysql-workbench-community
若要安裝共用用戶端程式庫(對於啟用 dnf 的系統,請將命令中的 yum 替換為 dnf)
$> sudo yum install mysql-community-libs
平台特定注意事項
ARM 支援
ARM 64 位元 (aarch64) 在 Oracle Linux 7 上支援,並需要 Oracle Linux 7 軟體集合儲存庫 (ol7_software_collections)。例如,若要安裝伺服器
$> yum-config-manager --enable ol7_software_collections
$> yum install mysql-community-server
使用 Yum 更新 MySQL
除了安裝之外,您也可以使用 MySQL Yum 儲存庫來執行 MySQL 產品和元件的更新。請參閱 第 3.8 節,「使用 MySQL Yum 儲存庫升級 MySQL」以取得詳細資訊。
取代原生的第三方 MySQL 發行版本
如果您已從原生軟體儲存庫(即您自己的 Linux 發行版本提供的軟體儲存庫)安裝了第三方的 MySQL 發行版本,請按照以下步驟操作
-
備份您的資料庫
為避免遺失資料,請務必在嘗試使用 MySQL Yum 儲存庫取代 MySQL 安裝之前備份您的資料庫。請參閱 第 9 章,備份和復原,以了解如何備份您的資料庫。
-
新增 MySQL Yum 儲存庫
按照 新增 MySQL Yum 儲存庫中的指示,將 MySQL Yum 儲存庫新增至您系統的儲存庫清單中。
-
透過 Yum 更新或 DNF 升級取代原生的第三方發行版本
按照設計,當您在系統上執行 yum update 命令(或針對啟用 dnf 的系統執行 dnf upgrade)或執行 yum update mysql-server(或針對啟用 dnf 的系統執行 dnf upgrade mysql-server)時,MySQL Yum 儲存庫會使用 MySQL Yum 儲存庫中最新的錯誤修正版本來取代您的原生第三方 MySQL。
使用 Yum 儲存庫更新 MySQL 之後,使用舊版共用用戶端程式庫編譯的應用程式應該會繼續運作。但是,如果您想要使用更新的程式庫重新編譯應用程式並動態連結它們,請參閱 升級共用用戶端程式庫,以了解一些特殊注意事項。
對於基於 EL7 的平台: 請參閱 基於 EL7 平台的相容性資訊。