文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  使用 MySQL SLES 儲存庫

2.5.3 使用 MySQL SLES 儲存庫

MySQL SLES 儲存庫提供 RPM 套件,用於在 SUSE Enterprise Linux Server 上安裝和管理 MySQL 伺服器、用戶端和其他元件。本節包含有關取得和安裝這些套件的資訊。

新增 MySQL SLES 儲存庫

為您的系統儲存庫清單新增或更新官方 MySQL SLES 儲存庫

注意

組態設定檔名稱的開頭部分,例如 mysql84,描述預設為安裝啟用的 MySQL 系列。在此情況下,MySQL 8.4 LTS 的子儲存庫預設為啟用。它還包含其他子儲存庫版本,例如 MySQL 8.0 和 MySQL Innovation 系列。

新 MySQL 儲存庫安裝

如果系統上尚未存在 MySQL 儲存庫,則

  1. 前往 MySQL SLES 儲存庫的下載頁面,網址為 https://mysqldev.dev.org.tw/downloads/repo/suse/

  2. 選取並下載適用於您的 SLES 版本的發行套件。

  3. 使用以下命令安裝下載的發行套件,並將 套件名稱 取代為下載套件的名稱

    $> sudo rpm -Uvh package-name.rpm

    例如,若要安裝 SLES 15 套件,其中 # 表示版本中的發行編號,例如 15-1

    $> sudo rpm -Uvh mysql84-community-release-sl15-#.noarch.rpm
更新現有的 MySQL 儲存庫安裝

如果已存在較舊版本,則更新它

  • $> sudo zypper update mysql84-community-release
  • 雖然這並非每個 MySQL 發行版本都必須執行,但它會更新 MySQL 儲存庫資訊以包含目前資訊。例如,mysql84-community-release-sl15-7.noarch.rpm 是第一個 SUSE 15 儲存庫組態設定檔,它會新增以 MySQL 8.1 系列開頭的創新發行追蹤。

選取發行系列

在 MySQL SLES 儲存庫中,不同發行系列的 MySQL Community Server 會託管在不同的子儲存庫中。最新錯誤修正系列的子儲存庫 (目前為 MySQL 8.4) 預設為啟用,而所有其他系列的子儲存庫則為停用。使用此命令查看 MySQL SLES 儲存庫中的所有子儲存庫,並查看其中哪些為啟用或停用

$> zypper repos | grep mysql.*community

創新追蹤適用於 SLES 15,其中包含諸如 mysql-innovation-community 之類的項目。

若要安裝來自特定系列的最新發行版本,請在執行安裝命令之前,確定您想要的系列子儲存庫已啟用,而其他系列的子儲存庫已停用。例如,在 SLES 15 上,若要停用預設為啟用的 MySQL 8.4 伺服器和工具的子儲存庫,請使用以下命令

$> sudo zypper modifyrepo -d mysql-8.4-lts-community
$> sudo zypper modifyrepo -d mysql-tools-community

然後,啟用您想要的發行系列子儲存庫。例如,若要在 SLES 15 上啟用 Innovation 追蹤

$> sudo zypper modifyrepo -e mysql-innovation-community
$> sudo zypper modifyrepo -e mysql-tools-innovation-community

您應該在任何時間只啟用一個發行系列的子儲存庫。

執行以下命令並檢查其輸出,以驗證已啟用正確的子儲存庫

$> zypper repos -E | grep mysql.*community

 7 | mysql-connectors-community       | MySQL Connectors Community                  | Yes     | (r ) Yes  | No
10 | mysql-innovation-community       | MySQL Innovation Release Community Server   | Yes     | (r ) Yes  | No
16 | mysql-tools-innovation-community | MySQL Tools Innovation Community            | Yes     | ( p) Yes  | No

之後,使用以下命令重新整理已啟用子儲存庫的儲存庫資訊

$> sudo zypper refresh

使用 Zypper 安裝 MySQL

啟用官方 MySQL 儲存庫後,安裝 MySQL 伺服器

$> sudo zypper install mysql-community-server

這會安裝 MySQL 伺服器的套件,以及其他必要套件。

啟動 MySQL 伺服器

使用以下命令啟動 MySQL 伺服器

$> systemctl start mysql

您可以使用以下命令檢查 MySQL 伺服器的狀態

$> systemctl status mysql

如果作業系統已啟用 systemd,則應該使用標準 systemctl 命令 (或替代地,使用參數反轉的 service) (例如 stopstartstatusrestart) 來管理 MySQL 伺服器服務。mysql 服務預設為啟用,並且會在系統重新開機時啟動。如需其他資訊,請參閱 第 2.5.9 節「使用 systemd 管理 MySQL 伺服器」

MySQL 伺服器初始化:當伺服器第一次啟動時,會初始化伺服器,並且會發生以下情況 (如果伺服器的資料目錄在初始化程序開始時為空)

  • SSL 憑證和金鑰檔案會在資料目錄中產生。

  • 會安裝並啟用 validate_password 外掛程式

  • 會建立超級使用者帳戶 'root'@'localhost'。超級使用者的密碼會設定並儲存在錯誤記錄檔中。若要顯示它,請使用以下命令

    $> sudo grep 'temporary password' /var/log/mysql/mysqld.log

    請儘快變更 root 密碼,方法是使用產生的暫時密碼登入,並為超級使用者帳戶設定自訂密碼

    $> mysql -uroot -p
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
注意

MySQL 的 validate_password 外掛程式預設為安裝。這會要求密碼至少包含一個大寫字母、一個小寫字母、一個數字和一個特殊字元,且密碼總長度至少為 8 個字元。

您可以使用以下命令停止 MySQL 伺服器

$> sudo systemctl stop mysql

安裝額外的 MySQL 產品和元件

您可以安裝更多 MySQL 的元件。使用以下命令列出 MySQL SLES 儲存庫中的子儲存庫

$> zypper repos | grep mysql.*community

使用以下命令列出特定子儲存庫可用的 MySQL 元件的套件,將 subrepo-name 變更為您感興趣的子儲存庫名稱

$> zypper packages subrepo-name

使用以下命令安裝您選擇的任何套件,將 package-name 替換為套件的名稱(您可能需要先啟用該套件的子儲存庫,使用與在 選取發行系列 中針對特定發行系列選取子儲存庫相同的方法)

$> sudo zypper install package-name

例如,要從您已啟用的發行系列的子儲存庫安裝 MySQL 基準測試套件

$> sudo zypper install mysql-community-bench

使用 MySQL SLES 儲存庫升級 MySQL

注意
  • 在對 MySQL 進行任何更新之前,請仔細遵循 第 3 章,升級 MySQL 中的說明。其中討論的其他說明中,在更新之前備份資料庫尤其重要。

按照以下步驟使用 MySQL SLES 儲存庫對您的 MySQL 安裝執行就地更新(也就是說,取代舊版的伺服器,然後使用舊的資料檔案執行新版)(假設您已使用 MySQL SLES 儲存庫安裝 MySQL;如果不是,請改為遵循 取代從其他來源透過 RPM 安裝的 MySQL 中的說明)

  1. 選取目標系列

    在更新操作期間,預設情況下,MySQL SLES 儲存庫會將 MySQL 更新為您在安裝期間選擇的發行系列中的最新版本(請參閱 選取發行系列 以取得詳細資訊),這表示。例如,錯誤修正系列安裝(例如 8.4)不會更新為創新系列(例如 9.0)。要更新為另一個發行系列,您需要先停用已選取的系列(預設或由您自己選取)的子儲存庫,然後啟用目標系列的子儲存庫。為此,請遵循 選取發行系列 中提供的一般說明。

    一般規則是,要從一個發行系列升級到另一個發行系列,請前往下一個系列,而不是跳過一個系列。

    重要

    MySQL SLES 儲存庫不支援就地降級 MySQL。請遵循 第 4 章,降級 MySQL 中的說明。

  2. 升級 MySQL

    使用以下命令升級 MySQL 及其元件

    $> sudo zypper update mysql-community-server

    或者,您可以告訴 Zypper 更新系統上的所有內容來更新 MySQL(這可能需要相當長的時間)

    $> sudo zypper update

您也可以僅更新特定元件。使用以下命令列出 MySQL SLES 儲存庫中的所有已安裝套件

$> zypper packages -i | grep mysql-.*community

在識別出您選擇的元件的套件名稱後,使用以下命令更新該套件,將 package-name 替換為套件的名稱

$> sudo zypper update package-name

取代從其他來源透過 RPM 安裝的 MySQL

用於安裝 MySQL Community Server 及其元件的 RPM 可以從 MySQL 的 MySQL 開發人員專區、SLES 的原生軟體儲存庫或 MySQL SLES 儲存庫下載。這些來源的 RPM 可能不同,它們可能會以不同的方式安裝和設定 MySQL。

如果您已使用來自 MySQL 開發人員專區或 SLES 原生軟體儲存庫的 RPM 安裝 MySQL,並且想要使用來自 MySQL SLES 儲存庫的 RPM 取代該安裝,請遵循以下步驟

  1. 備份您的資料庫以避免資料遺失。請參閱 第 9 章,備份與復原,以了解如何執行此操作。

  2. 停止您的 MySQL 伺服器(如果正在執行)。如果伺服器以服務形式執行,您可以使用以下命令停止它

    $> systemctl stop mysql

  3. 遵循 新增 MySQL SLES 儲存庫 中的步驟。

  4. 遵循 選取發行系列 中的步驟。

  5. 遵循 使用 Zypper 安裝 MySQL 中的步驟。系統將會詢問您是否要用新的套件取代舊的套件;例如

    Problem: mysql-community-server-5.6.22-2.sles11.x86_64 requires mysql-community-client = 5.6.22-2.sles11,
      but this requirement cannot be provided uninstallable providers:
      mysql-community-client-5.6.22-2.sles11.x86_64[mysql56-community]
     Solution 1: replacement of mysql-client-5.5.31-0.7.10.x86_64 with mysql-community-client-5.6.22-2.sles11.x86_64
     Solution 2: do not install mysql-community-server-5.6.22-2.sles11.x86_64
     Solution 3: break mysql-community-server-5.6.22-2.sles11.x86_64 by ignoring some of its dependencies
    
    Choose from above solutions by number or cancel [1/2/3/c] (c)

    選擇 取代選項(範例中的 解決方案 1)以完成從 MySQL SLES 儲存庫進行的安裝。

使用 SLES 儲存庫安裝 MySQL NDB Cluster

  • 以下說明假設您的系統尚未安裝 MySQL 伺服器或 MySQL NDB Cluster;如果不是這種情況,請在繼續之前移除 MySQL 伺服器或 MySQL NDB Cluster,包括其所有可執行檔、程式庫、組態檔案、記錄檔和資料目錄。但是,不需要移除您可能用來在系統上啟用 MySQL SLES 儲存庫的發行套件。

  • NDB Cluster 自動安裝程式套件相依於 python2-cryptopython-paramiko 套件。如果您的系統已啟用 Python 儲存庫,Zypper 可以處理此相依性。

選取 MySQL NDB Cluster 子儲存庫

在 MySQL SLES 儲存庫中,MySQL Community Server 和 MySQL NDB Cluster 託管在不同的子儲存庫中。預設情況下,會啟用 MySQL 伺服器的最新錯誤修正系列的子儲存庫,並停用 MySQL NDB Cluster 的子儲存庫。要安裝 NDB Cluster,請停用 MySQL 伺服器的子儲存庫,並啟用 NDB Cluster 的子儲存庫。例如,使用以下命令停用預設啟用的 MySQL 8.4 的子儲存庫

$> sudo zypper modifyrepo -d mysql-8.4-lts-community

然後,啟用 MySQL NDB Cluster 的子儲存庫

$> sudo zypper modifyrepo -e mysql-cluster-8.4-community

執行以下命令並檢查其輸出,以驗證已啟用正確的子儲存庫

$> zypper repos -E | grep mysql.*community
10 | mysql-cluster-8.4-community | MySQL Cluster 8.4 Community | Yes     | No

之後,使用以下命令重新整理已啟用子儲存庫的儲存庫資訊

$> sudo zypper refresh

安裝 MySQL NDB Cluster

對於 MySQL NDB Cluster 的最小安裝,請遵循以下步驟

  • 安裝 SQL 節點的元件

    $> sudo zypper install mysql-cluster-community-server

    安裝完成後,依照 啟動 MySQL 伺服器 中的步驟啟動和初始化 SQL 節點。

    如果您選擇使用 mysqld --initialize 命令手動初始化資料目錄(請參閱 第 2.9.1 節,「初始化資料目錄」 以取得詳細資訊),將會產生一個 root 密碼,並儲存在 SQL 節點的錯誤記錄中;請參閱 啟動 MySQL 伺服器 以了解如何尋找密碼,以及您需要了解的一些事項。

  • 安裝管理節點的可執行檔

    $> sudo zypper install mysql-cluster-community-management-server
  • 安裝資料節點的可執行檔

    $> sudo zypper install mysql-cluster-community-data-node

要安裝更多 NDB Cluster 元件,請參閱 安裝額外的 MySQL 產品和元件

請參閱 第 25.3.3 節,「NDB Cluster 的初始組態」,以了解如何設定 MySQL NDB Cluster,並參閱 第 25.3.4 節,「NDB Cluster 的初始啟動」,以了解如何首次啟動它。

安裝額外的 MySQL NDB Cluster 產品和元件

您可以使用 Zypper 從 MySQL SLES 儲存庫安裝 MySQL NDB Cluster 的個別元件和其他產品。為此,假設您的系統儲存庫清單中已有 MySQL SLES 儲存庫(如果沒有,請遵循 使用 SLES 儲存庫安裝 MySQL NDB Cluster 的步驟 1 和 2),請遵循 安裝額外的 MySQL NDB Cluster 產品和元件 中提供的相同步驟。

注意

已知問題:目前,當您安裝測試套件套件(mysql-cluster-community-test)時,並非所有執行 MySQL NDB Cluster 測試套件所需的元件都會自動安裝。在您執行測試套件之前,請使用 zypper install 安裝以下套件

  • mysql-cluster-community-auto-installer

  • mysql-cluster-community-management-server

  • mysql-cluster-community-data-node

  • mysql-cluster-community-memcached

  • mysql-cluster-community-java

  • mysql-cluster-community-ndbclient-devel