问:Fedora 30上的MariaDB安装问题

时间:2019-10-05 12:50:54

标签: mysql mariadb fedora

我需要安装MariaDB,并且我按照Fedora Wiki的官方说明进行操作,但是我无法进行适当的安装。因此,首先我运行dnf install mariadb mariadb-server命令(在root下),返回值为

  

软件包mysql-community-client-8.0.17-1.fc30.x86_64已安装。   软件包mysql-community-server-8.0.17-1.fc30.x86_64已经安装。   依赖性解决。   没事做。   完成!

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

  

无法启动mariadb.service:找不到单元mariadb.service。

我安装了其他必不可少的软件包,例如php,httpd,mysql等,我也需要安装LAMP,但出现此MariaDB错误。你能给我指路吗?

1 个答案:

答案 0 :(得分:0)

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

下面的方法可能不是最佳方法,每个人都可以轻松地简化它。

首先,如果您安装了mysql-community-*软件包,则可能已配置了MySQL Community回购。在您的/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输出中,您在确认之前会对其进行检查。