SDB:切换 MySQL 变体

跳转到:导航搜索

在 openSUSE 上测试

推荐文章

相关文章


从 openSUSE 11.3 开始,发行版中存在多个软件包可以提供 MySQL 服务器和客户端。有时,人们可能希望在这些提供者之间切换。或者您可能希望切换到较新的版本。在后一种情况下,openSUSE Build Service 的 server:/database 仓库可能会派上用场。

可用变体

以下 MySQL 变体在当前的 openSUSE (事实上从 11.3 开始) 和 server:/database 仓库中可用。

MariaDB

https://mariadb.com 是由社区与 Monty Program 合作维护的 MySQL 分支。它包含了社区提供的许多改进和更多的开源存储引擎。它以开放的方式开发。官方网站上可以找到差异列表

软件包名称: mariadb

MySQL Community Server

MySQL 由 Oracle 发布。 MySQL Community Server 是 Oracle 发布的一个 MySQL 变体。与封闭源代码的企业版相比,它缺少一些功能。

软件包名称: mysql-community-server

不稳定版本

如果您对这些版本不满意,可以使用开发版本。它们位于同一个仓库中,只是命名不同。但是切换就像在 MySQL 和 MariaDB 之间切换一样简单。较新的(有时也较旧的)变体通过在软件包名称后附加 _version 来命名。因此,例如,如果您想要 MariaDB 10.0.x,您需要软件包mariadb_100.

流程

您可以使用软件包管理轻松切换。虽然在大多数情况下一切都应该正常工作,但始终建议先 备份 您的数据。只需选择您想要的变体,然后尝试使用上述软件包名称进行安装。软件包管理将处理其余部分,因为软件包之间存在冲突。它会询问您是否要卸载当前的 mysql 提供程序并安装新的提供程序,或者是否要保持原样。

示例

假设您拥有 MySQL Community Server,并且想要尝试 MariaDB。工作流程可能如下所示

# zypper in mariadb
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: mysql-community-server-5.1.46-2.14.x86_64 conflicts with namespace:otherproviders(mysql) provided by mariadb-5.1.44-2.9.x86_64
 Solution 1: deinstallation of mysql-community-server-5.1.46-2.14.x86_64
 Solution 2: do not install mariadb-5.1.44-2.9.x86_64

Choose from above solutions by number or cancel [1/2/c] (c): 1
Resolving dependencies...
Resolving package dependencies...

The following NEW packages are going to be installed:
  libmariadbclient16 libmariadbclient_r16 mariadb mariadb-client 

The following packages are going to be REMOVED:
  mysql-community-server mysql-community-server-client 

4 new packages to install, 2 to remove.
Overall download size: 5.2 MiB. After the operation, 4.1 MiB will be freed.
Continue? [y/n/?] (y): y
Removing mysql-community-server-5.1.46-2.14 [done]
Additional rpm output:
Shutting down service MySQL ..done


Removing mysql-community-server-client-5.1.46-2.9 [done]
Retrieving package libmariadbclient_r16-5.1.44-2.9.x86_64 (1/4), 479.0 KiB (1.5 MiB unpacked)
Retrieving: libmariadbclient_r16-5.1.44-2.9.x86_64.rpm [done (267.8 KiB/s)]
Installing: libmariadbclient_r16-5.1.44-2.9 [done]
Retrieving package libmariadbclient16-5.1.44-2.9.x86_64 (2/4), 475.0 KiB (1.5 MiB unpacked)
Retrieving: libmariadbclient16-5.1.44-2.9.x86_64.rpm [done]    
Installing: libmariadbclient16-5.1.44-2.9 [done]
Retrieving package mariadb-client-5.1.44-2.9.x86_64 (3/4), 154.0 KiB (375.0 KiB unpacked)
Retrieving: mariadb-client-5.1.44-2.9.x86_64.rpm [done]    
Installing: mariadb-client-5.1.44-2.9 [done]
Retrieving package mariadb-5.1.44-2.9.x86_64 (4/4), 4.1 MiB (21.5 MiB unpacked)
Retrieving: mariadb-5.1.44-2.9.x86_64.rpm [done (5.3 MiB/s)]
Installing: mariadb-5.1.44-2.9 [done]


可能出现的问题

不同的插件名称

很容易发生插件名称已更改的情况。因此,如果无法加载某些存储引擎,请检查您是否正在加载正确的插件。

丢失的配置

在 MySQL 变体之间切换时,您的配置文件/etc/my.cnf可能会被覆盖。通常,备份副本会保存为/etc/my.cnf.rpmsave。因此,如果切换后您的数据不可用,请不要惊慌,并查看您的配置文件。

不支持的存储引擎

可能会发生旧存储引擎不再受较新/不同版本的 MySQL 支持的情况。因此,始终建议使用 mysqdump 备份 您的数据。这样,您将拥有数据的文本表示形式,并且可以更改存储引擎并重新加载它们。