編碼的世界 / 優質文選 / 歷史

SLES升級MYSQL


2022年7月23日
-   

原mysql是利用 SLES庫安裝
升級mysql以前,必須對mysql進行備份,另外假定原mysql是利用SLES庫安裝。如果不是采用這種方式安裝,需要用其他來源的RPM安裝的mysql的替換的方法。
使用SLES庫升級MYSQL(就是代替舊版本,用原來的數據運行新版本),采用以下步驟:
1.選擇目標系列
 MySQL SLES 倉庫只會更新到安裝時選擇的序列的最新版本,例如安裝時版本為5.7.x升級時,不能自動升級到8.0。作為一個普遍的規則,升級應該從一個版本至下一個版本,而不應該直接升級至最新版本。例如從5.5升級至5.6,再升級至5.7,而不應該一步升級至5.7。
2.升級MYSQL
通過以下命令升級mysql及其組件:
zypper update mysql-community-server
3.升級數據
升級完成後,通常會重啟mysql。 MySQL 8.0.16以前的版本,重啟後運行mysql_upgrade 檢查舊版本數據與新版本之間的是否兼容。mysql 5.6升級到5.7後,如果以root用戶身份連接到服務器有問題(這將導致無法運行mysql_upgrade),則停止服務器,然後在運行mysql_upgrade之前使用skip-grant-tables選項重啟Mysql服務器。
4.使用以下命令列出mysql sles庫中所有可以升級的軟件包:
zypper packages -i | grep mysql-.*community
識別選擇的組件的包名後,使用以下命令更新包,用包名替換package-name:
zypper update package-name
其他來源的RPM安裝的mysql的替換
安裝MySQL Community Server及其組件的RPM可以從mysql, mysql開發者社區, SLES的本地軟件庫,SLES庫下載。這些RPM可能以不同的方式安裝和配置mysql。
如果已經使用mysql開發者社區或SLES的本地軟件庫的RPM安裝了mysql,並且希望使用SLES庫中的rpm替換安裝,則按照以下步驟替換:
備份數據庫停止MYSQL Server 按照以下步驟添加 MySQL SLES 倉庫到系統倉庫列表:                                                            訪問https://dev.mysql.com/downloads/repo/suse/ 選擇並下載針對SLES版本的發行包 使用以下命令安裝下載的發行包,用下載包的名稱替換package-name: rpm -Uvh package-name.rpm
安裝sles 12和15軟件包的命令如下, $表示版本中的發行號,
# SLES 12
# Enables MySQL 8.0 by default
rpm -Uvh mysql80-community-release-sles12-$.noarch.rpm
# SLES 15 / openSUSE 15
# Enables MySQL 8.0 by default
rpm -Uvh mysql80-community-release-sl15-$.noarch.rpm
選擇發行版本, 在MySQL SLES庫中,不同版本的MySQL Community Server 在不同的子庫中。對於SLES12和SLES15,默認情況下啟用最新發行版本(當前為mysql 8.0),禁用所有其他版本。使用此命令查看MySQL SLES庫中的所有版本,並查看啟用或禁用了哪些版本:
zypper repos | grep mysql.*community
為了安裝特定系列的最新版本,在運行安裝命令之前,請確保啟用了所需系列庫,而禁用了其他系列的子庫。例如,在SLES 12上,要禁用默認啟用的mysql 8.0庫,請使用以下命令:
zypper modifyrepo -d mysql80-community
接著,啟用你需要的子倉庫。例如,為mysql 5.7啟用子庫:
zypper modifyrepo -e mysql57-community
任何時候,你只能啟用一個子庫,否則會安裝最新版本。
通過運行以下命令並檢查其輸出,驗證是否啟用了正確的子庫:
zypper repos -E | grep mysql.*community
4 | mysql80-community                | MySQL 5.7 Community Server   
用下面的命令更新庫信息:
zypper refresh
用zypper安裝mysql,zypper install mysql-community-server,你會被問到你是否想用新的包替換舊的包;例如:
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庫中完成安裝。

熱門文章