原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库中完成安装。