mysql - 问: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 错误。你能给我指路吗?
解决方案
发生这种情况是因为 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
您在确认之前检查的输出中。
推荐阅读
- python - Python HashTable 实现比列表迭代更快?
- javascript - 将两组数字相乘并得到两个数字答案的 JavaScript 函数
- r - 使用 CronR 时出错
- vivado - 通过以太网从 PL(fpga) 到 PC 的数据传输
- batch-file - 如何将 zip 文件中的所有图像提取到 zip 的名称目录?
- javascript - 在终端上获取错误缺少模块
- angular - 如何从父组件传递到未嵌套的子组件?
- swift - 如何在没有纹理图集的 spritekit 中创建此动画
- matlab - Matlab onehot转整数
- javascript - 停止后如何重新启动网络工作者