我需要安装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已经安装。
  依赖性解决。
  没事做。
  完成!


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


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


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

最佳答案

发生这种情况是因为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,则可能是因为您确实需要mysql-community,而对于MariaDB替换它并不满意。则可能不允许您更换软件包。但是我无法猜出它是什么,所以要由您来尝试看看。我想它会出现在您确认之前的dnf输出中。

关于mysql - 问:Fedora 30上的MariaDB安装问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58248469/

10-12 14:16
查看更多