首页 > 解决方案 > 问:Fedora 30 上的 MariaDB 安装问题

问题描述

我需要安装 MariaDB 并且我按照 Fedora Wiki 的官方说明进行操作,但我无法进行正确的安装。所以,首先我运行dnf install mariadb mariadb-server命令(在根目录下),返回是

已经安装了包 mysql-community-client-8.0.17-1.fc30.x86_64。包 mysql-community-server-8.0.17-1.fc30.x86_64 已经安装。依赖关系已解决。没事做。完全的!

所以我尝试启用/启动mariadb,systemctl start mariadb然后返回

启动 mariadb.service 失败:找不到单元 mariadb.service。

我安装了其他基本软件包,如 php、httpd、mysql 等,我也需要安装 LAMP,但我收到了这个 MariaDB 错误。你能给我指路吗?

标签: mysqlmariadbfedora

解决方案


发生这种情况是因为 mysql-community 包被配置为过时的 mariadb 包。

下面的方法可能不是最理想的,每个人都很容易参与以简化它。

首先,如果你安装了mysql-community-*软件包,你可能已经MySQL Community配置了 repo。搜索/etc/yum.repo.d它并从那里删除它:

$ grep -ri community /etc/yum.repos.d/*
/etc/yum.repos.d/mysql.repo:[mysql80-community]
/etc/yum.repos.d/mysql.repo:name=MySQL 8.0 Community Server
/etc/yum.repos.d/mysql.repo:baseurl=http://repo.mysql.com/yum/mysql-8.0-community/fc/$releasever/$basearch/

sudo mv /etc/yum.repos.d/mysql.repo /tmp/

然后,检查mysql-community-*您拥有的确切软件包:

$ rpm -qa | grep mysql-community
mysql-community-server-8.0.17-1.fc30.x86_64
mysql-community-libs-8.0.17-1.fc30.x86_64
mysql-community-client-8.0.17-1.fc30.x86_64
mysql-community-common-8.0.17-1.fc30.x86_64

摆脱它们的最简单方法就是将它们删除dnf。但这需要非常小心地完成,因为如果它们已经存在了一段时间,您可能还有其他依赖于它们的包。因此,当您运行remove命令时,请确保您没有自动是(-y选项),并在同意卸载之前检查输出。它可能看起来像这样:

$ sudo dnf remove mysql-community*
Dependencies resolved.
===================================================================================================================================================================================
 Package                                           Architecture                      Version                                   Repository                                     Size
===================================================================================================================================================================================
Removing:
 mysql-community-client                            x86_64                            8.0.17-1.fc30                             @mysql80-community                             66 M
 mysql-community-common                            x86_64                            8.0.17-1.fc30                             @mysql80-community                            8.3 M
 mysql-community-libs                              x86_64                            8.0.17-1.fc30                             @mysql80-community                            7.5 M
 mysql-community-server                            x86_64                            8.0.17-1.fc30                             @mysql80-community                            128 M
Removing dependent packages:
 perl-DBD-MySQL                                    x86_64                            4.050-2.fc30                              @fedora                                       367 k
Removing unused dependencies:

注意部分Removing dependent packages。我只添加了一个包来做一个例子,但在你的情况下,它可能更长更可怕。如果您确实有该部分并且不知道是否可以安全地删除其所有内容,那么最好不要这样做(现在)。中止操作。

Is this ok [y/N]: n
Operation aborted.

相反,您可以尝试用 MariaDB替换mysql-community 包。有一个dnf选项--allowerasing似乎可以解决问题,但是您需要使用版本指定包名称以解决 mysql 过时问题(将命令中的版本替换为您执行此操作时可用的实际版本):

$ sudo dnf install --allowerasing --setopt=install_weak_deps=False mariadb-server-10.3.17 mariadb-10.3.17
Last metadata expiration check: 0:07:18 ago on Mon 07 Oct 2019 02:25:32 PM UTC.
Dependencies resolved.
===================================================================================================================================================================================
 Package                                             Architecture                    Version                                     Repository                                   Size
===================================================================================================================================================================================
Installing:
 mariadb                                             x86_64                          3:10.3.17-1.fc30                            updates                                     5.9 M
 mariadb-server                                      x86_64                          3:10.3.17-1.fc30                            updates                                      17 M
Installing dependencies:
 mariadb-common                                      x86_64                          3:10.3.17-1.fc30                            updates                                      36 k
 mariadb-connector-c-config                          noarch                          3.1.3-1.fc30                                updates                                      12 k
 mariadb-errmsg                                      x86_64                          3:10.3.17-1.fc30                            updates                                     205 k
 mysql-selinux                                       noarch                          1.0.0-8.fc30                                fedora                                       35 k
 psmisc                                              x86_64                          23.1-5.1.fc30                               fedora                                      133 k
Removing dependent packages:
 mysql-community-client                              x86_64                          8.0.17-1.fc30                               @mysql80-community                           66 M
 mysql-community-server                              x86_64                          8.0.17-1.fc30                               @mysql80-community                          128 M

Transaction Summary

现在除了目标 mysql-community 之外,没有任何东西作为依赖项被删除。

该选项--setopt=install_weak_deps=False不是绝对必要的,但没有它dnf会安装许多您可能不需要的软件包。您可以在没有选项的情况下运行以查看差异。

更换服务器和客户端软件包后,您可以检查 MySQL 社区服务器还剩下什么,如果需要,请尝试删除剩余的软件包:

$ rpm -qa | grep mysql-community
mysql-community-libs-8.0.17-1.fc30.x86_64
mysql-community-common-8.0.17-1.fc30.x86_64

$ sudo dnf remove mysql-community-libs mysql-community-common
Dependencies resolved.
===================================================================================================================================================================================
 Package                                           Architecture                      Version                                   Repository                                     Size
===================================================================================================================================================================================
Removing:
 mysql-community-common                            x86_64                            8.0.17-1.fc30                             @mysql80-community                            8.3 M
 mysql-community-libs                              x86_64                            8.0.17-1.fc30                             @mysql80-community                            7.5 M

Transaction Summary

现在看起来很安全,不再依赖。


我能想到一个问题。如果您不知道为什么首先安装了 mysql-community,那么您可能有一些东西正好需要它,并且对 MariaDB 替换它不满意。那么它可能不允许您更换软件包。但我无法猜测它可能是什么,所以由你来尝试看看。我想它会显示在dnf您在确认之前检查的输出中。


推荐阅读