MySQL SLES 儲存庫提供 RPM 套件,用於在 SUSE Enterprise Linux Server 上安裝和管理 MySQL 伺服器、用戶端和其他元件。本節包含有關取得和安裝這些套件的資訊。
為您的系統儲存庫清單新增或更新官方 MySQL SLES 儲存庫
組態設定檔名稱的開頭部分,例如 mysql84
,描述預設為安裝啟用的 MySQL 系列。在此情況下,MySQL 8.4 LTS 的子儲存庫預設為啟用。它還包含其他子儲存庫版本,例如 MySQL 8.0 和 MySQL Innovation 系列。
新 MySQL 儲存庫安裝
如果系統上尚未存在 MySQL 儲存庫,則
前往 MySQL SLES 儲存庫的下載頁面,網址為 https://mysqldev.dev.org.tw/downloads/repo/suse/。
選取並下載適用於您的 SLES 版本的發行套件。
使用以下命令安裝下載的發行套件,並將
套件名稱
取代為下載套件的名稱$> 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-
是第一個 SUSE 15 儲存庫組態設定檔,它會新增以 MySQL 8.1 系列開頭的創新發行追蹤。7
.noarch.rpm
在 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
啟用官方 MySQL 儲存庫後,安裝 MySQL 伺服器
$> sudo zypper install mysql-community-server
這會安裝 MySQL 伺服器的套件,以及其他必要套件。
使用以下命令啟動 MySQL 伺服器
$> systemctl start mysql
您可以使用以下命令檢查 MySQL 伺服器的狀態
$> systemctl status mysql
如果作業系統已啟用 systemd,則應該使用標準 systemctl 命令 (或替代地,使用參數反轉的 service) (例如 stop、start、status 和 restart) 來管理 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 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 進行任何更新之前,請仔細遵循 第 3 章,升級 MySQL 中的說明。其中討論的其他說明中,在更新之前備份資料庫尤其重要。
按照以下步驟使用 MySQL SLES 儲存庫對您的 MySQL 安裝執行就地更新(也就是說,取代舊版的伺服器,然後使用舊的資料檔案執行新版)(假設您已使用 MySQL SLES 儲存庫安裝 MySQL;如果不是,請改為遵循 取代從其他來源透過 RPM 安裝的 MySQL 中的說明)
-
選取目標系列
在更新操作期間,預設情況下,MySQL SLES 儲存庫會將 MySQL 更新為您在安裝期間選擇的發行系列中的最新版本(請參閱 選取發行系列 以取得詳細資訊),這表示。例如,錯誤修正系列安裝(例如 8.4)不會更新為創新系列(例如 9.0)。要更新為另一個發行系列,您需要先停用已選取的系列(預設或由您自己選取)的子儲存庫,然後啟用目標系列的子儲存庫。為此,請遵循 選取發行系列 中提供的一般說明。
一般規則是,要從一個發行系列升級到另一個發行系列,請前往下一個系列,而不是跳過一個系列。
重要MySQL SLES 儲存庫不支援就地降級 MySQL。請遵循 第 4 章,降級 MySQL 中的說明。
-
升級 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
用於安裝 MySQL Community Server 及其元件的 RPM 可以從 MySQL 的 MySQL 開發人員專區、SLES 的原生軟體儲存庫或 MySQL SLES 儲存庫下載。這些來源的 RPM 可能不同,它們可能會以不同的方式安裝和設定 MySQL。
如果您已使用來自 MySQL 開發人員專區或 SLES 原生軟體儲存庫的 RPM 安裝 MySQL,並且想要使用來自 MySQL SLES 儲存庫的 RPM 取代該安裝,請遵循以下步驟
備份您的資料庫以避免資料遺失。請參閱 第 9 章,備份與復原,以了解如何執行此操作。
停止您的 MySQL 伺服器(如果正在執行)。如果伺服器以服務形式執行,您可以使用以下命令停止它
$> systemctl stop mysql
遵循 新增 MySQL SLES 儲存庫 中的步驟。
遵循 選取發行系列 中的步驟。
遵循 使用 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 儲存庫進行的安裝。
以下說明假設您的系統尚未安裝 MySQL 伺服器或 MySQL NDB Cluster;如果不是這種情況,請在繼續之前移除 MySQL 伺服器或 MySQL NDB Cluster,包括其所有可執行檔、程式庫、組態檔案、記錄檔和資料目錄。但是,不需要移除您可能用來在系統上啟用 MySQL SLES 儲存庫的發行套件。
NDB Cluster 自動安裝程式套件相依於
python2-crypto
和python-paramiko
套件。如果您的系統已啟用 Python 儲存庫,Zypper 可以處理此相依性。
在 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 的最小安裝,請遵循以下步驟
安裝 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 的初始啟動」,以了解如何首次啟動它。
您可以使用 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