我需要安装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错误。你能给我指路吗?
答案 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
输出中,您在确认之前会对其进行检查。