SDB:切换 MySQL 变体
从 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 备份 您的数据。这样,您将拥有数据的文本表示形式,并且可以更改存储引擎并重新加载它们。