以下软件包具有未满足的依赖关系:mariadb-server

以下软件包具有未满足的依赖关系:mariadb-server

如何让 Mariadb 再次运行?我的 WordPress 网站正在返回:

建立数据库连接时出错

看来我的数据库已关闭。 (我将 Ubuntu 19.04 更新到 19.10,但遇到了多个问题。)

我继续检查 MySQL 安装的软件包,忘记了我实际上正在使用 Mariadb。

所以我安装了MySQL;发现我不应该那样做;删除了 MySQL;并跟随这些安装 Mariadb 10.4 的说明

sudo apt install mariadb-server正在返回:

某些软件包无法安装。这可能意味着您请求了一种不可能的情况,或者如果您使用的是不稳定的发行版,某些所需的软件包尚未创建或已移出传入。以下信息可能有助于解决问题:

以下软件包具有未满足的依赖关系:

mariadb-server :依赖:mariadb-server-10.4 (>= 1:10.4.8+maria~disco) 但不会安装


所以我删除了 Mariadb通过做 (来源

apt-get remove --purge mysql*
apt-get remove --purge mysql
apt-get remove --purge mariadb
apt-get remove --purge mariadb*
apt-get --purge remove mariadb-server
apt-get --purge remove python-software-properties

并尝试使用上面提到的相同指南再次重新安装它:

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

最后一个命令apt-key ...返回

执行:/tmp/apt-key-gpghome.XsKKHEPfCn/gpg.1.sh --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

gpg: 密钥 F1656F24C74CD1D8:由于缺少密钥而未检查 6 个签名

gpg:密钥 F1656F24C74CD1D8:“MariaDB 签名密钥”未更改

gpg:处理总数:1

GPG:不变:1

sudo apt update
sudo apt install mariadb-server
# MariaDB 10.4 repository list - created 2019-11-03 16:26 UTC
# http://downloads.mariadb.org/mariadb/repositories/
deb [arch=amd64] http://mariadb.mirror.pcextreme.nl/repo/10.4/ubuntu disco main
deb-src http://mariadb.mirror.pcextreme.nl/repo/10.4/ubuntu disco main

sudo systemctl start mariadb回报

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


dpkg -l | grep -e mysql -e mariadb回报

遥控汽车mysqlbackup 2.6+debian.4-1 为您的 MySQL 数据库提供每日、每周和每月的备份
ii dbconfig-mysql                                        2.0.11ubuntu2 所有 dbconfig-common MySQL/MariaDB 支持
ii 默认-mysql-client 1.0.5ubuntu2 所有 MySQL 数据库客户端二进制文件(元包)
ii libdbd-mysql-perl:amd64 4.050-2build1 amd64 Perl5 数据库与 MariaDB/MySQL 数据库的接口
RC库mysqlclient18:amd64 5.6.30-0ubuntu0.15.10.1 amd64 MySQL数据库客户端库mysqlclient21:amd64 8.0.17-0ubuntu2 amd64 MySQL数据库客户端库
二、  mysql-client 8.0.17-0ubuntu2 所有MySQL数据库客户端(元包取决于最新版本)
二、  mysql-client-8.0 8.0.17-0ubuntu2 amd64 MySQL 数据库客户端二进制文件
二、  mysql-client-core-8.0 8.0.17-0ubuntu2 amd64 MySQL 数据库核心客户端二进制文件
二、  mysql-common 1:10.4.8+maria~disco 所有MariaDB数据库通用文件(例如/etc/mysql/my.cnf)
二、  mysql-server-8.0 8.0.17-0ubuntu2 amd64 MySQL 数据库服务器二进制文件和系统数据库设置
二、  mysql-server-core-8.0 8.0.17-0ubuntu2 amd64 MySQL 数据库服务器二进制文件
RC  mysql-utilities 1.6.4-1 用于管理 MySQL 服务器的所有脚本集合
rc php7.0-mysql                                          7.0.24-1+ubuntu17.04.1+deb.sury.org+1 用于 PHP 的 amd64 MySQL 模块
ii php7.1-mysql                                          7.1.16-1+ubuntu17.10.1+deb.sury.org+1 用于 PHP 的 amd64 MySQL 模块
ii 后缀-mysql                                         3.4.5-1ubuntu1 amd64 MySQL 映射对 Postfix 的支持
ii 圆形立方体-mysql                                       1.3.8+dfsg.1-2 为 RoundCube 提供 MySQL 依赖的所有元包

更新1

看起来我有两组数据库。我在 中找到了一个/var/lib/mysql-10.2,在 中找到了另一个/var/lib/mysql/var/lib/mysql-upgrade是空的。

更新2

我跟着这些步骤并停在它所说的地方

但这可能无济于事,因为您的系统严重损坏,...

这是一些输出:

sudo apt-get update

点击:1 http://archive.canonical.com/ubuntu eoan InRelease
获取:2 http://security.ubuntu.com/ubuntu eoan-security InRelease [92.9 kB]
点击:3 http://ppa.launchpad.net/webupd8team/y-ppa-manager/ubuntu eoan InRelease
点击:4 http://archive.ubuntu.com/ubuntu eoan InRelease                          
获取:5 http://archive.ubuntu.com/ubuntu eoan-updates InRelease [88.4 kB]                         
1 秒内获取 181 kB (135 kB/s)     
正在阅读包裹清单...完成

sudo apt-get install -f

正在阅读包裹清单...完成
构建依赖树       
读取状态信息...完成
0 已升级,0 已新安装,0 已删除,0 未升级。

sudo apt-get dist-upgrade

正在阅读包裹清单...完成
构建依赖树       
读取状态信息...完成
正在计算升级...完成
0 已升级,0 已新安装,0 已删除,0 未升级。

apt-cache policy python3

蟒蛇3:
  安装:3.7.5-1
  候选:3.7.5-1
  版本表:
 *** 3.7.5-1 500
        500 个 http://archive.ubuntu.com/ubuntu eoan/main amd64 软件包
        100 /var/lib/dpkg/状态

sudo apt install mariadb-server

正在阅读包裹清单...完成
构建依赖树       
读取状态信息...完成
某些软件包无法安装。这可能意味着您有
请求不可能的情况或者如果您正在使用不稳定的
一些必需的包尚未创建的发行版
或已移出传入。
以下信息可能有助于解决问题:

以下软件包具有未满足的依赖关系:
 mariadb-server :取决于:mariadb-server-10.3 (>= 1:10.3.17-1) 但不会安装
E:无法纠正问题,您持有破损的包裹。

更新3

我注意到/var/run没有 mysql 文件夹...我假设 mysqldb 没有运行。所以我尝试了这个:

sudo /etc/init.d/mysql start

[...] 启动 mysql(通过 systemctl):mysql.service 的 mysql.serviceJob 失败,因为控制进程以错误代码退出。
有关详细信息,请参阅“systemctl status mysql.service”和“journalctl -xe”。
 失败的!

sudo systemctl status mysql.service

mysql.service - MySQL 社区服务器
   已加载:已加载(/lib/systemd/system/mysql.service;已禁用;供应商预设:已启用)
   积极的:失败的(结果:退出代码)自太平洋标准时间 2019 年 11 月 3 日星期日 18:07:45 起; 44 秒前
  进程:6033 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre(代码=已退出,状态=1/失败)

11 月 3 日 18:07:45 Courtens.org systemd[1]: mysql.service: Service RestartSec=100ms 已过期,计划重新启动。
11 月 3 日 18:07:45 Courtens.org systemd[1]:mysql.service:计划重新启动作业,重新启动计数器为 5。
11 月 3 日 18:07:45 Courtens.org systemd[1]:已停止 MySQL 社区服务器。
11 月 3 日 18:07:45 Courtens.org systemd[1]:mysql.service:启动请求重复得太快。
11 月 3 日 18:07:45 Courtens.org systemd[1]:mysql.service:失败,结果为“退出代码”。
11 月 3 日 18:07:45 Courtens.org systemd[1]:无法启动 MySQL 社区服务器。

更新4

我发现并按照步骤操作,终于成功了。或者看起来会,但我再也没有恢复服务器。

从页面:

在 Ubuntu 上构建 MariaDB

$ sudo apt-get install software-properties-common \
     devscripts \
     equivs

安装构建依赖项

$ sudo apt-key adv --recv-keys \
     --keyserver hkp://keyserver.ubuntu.com:80 \
     0xF1656F24C74CD1D8

$ sudo add-apt-repository --update --yes --enable-source \
     'deb [arch=amd64] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu '$(lsb_release -sc)' main'

$ sudo apt-get build-dep mariadb-10.3

构建 MariaDB

...

答案1

我发现这个帖子并用来aptitude代替apt-getor apt,看起来终于有了一些希望......

而不是使用

sudo apt install mariadb-server

我用了

sudo aptitude install mariadb-server

现在它开始自我修复

将安装以下新软件包:
  galera-3{a} libconfig-inifiles-perl{a} mariadb-client-10.3{ab} mariadb-client-core-10.3{ab}
  mariadb-common{a} mariadb-server mariadb-server-10.3{ab} mariadb-server-core-10.3{ab} socat{a}
升级了 0 个软件包,新安装了 9 个软件包,删除了 0 个软件包,未升级 0 个软件包。
需要获取 18.5 MB 的档案。解压后将使用 161 MB。
以下软件包具有未满足的依赖关系:
 mysql-client-8.0 :冲突:mariadb-client-10.3 但要安装 1:10.3.17-1
                    冲突: virtual-mysql-client 是一个虚拟包,由以下提供:
                               - mariadb-client-10.3 (1:10.3.17-1),但要安装 1:10.3.17-1
                               - mysql-client-8.0 (8.0.17-0ubuntu2),但已安装 8.0.17-0ubuntu2

 mysql-server-8.0 :冲突:mariadb-server-10.3 但要安装 1:10.3.17-1
                    冲突: virtual-mysql-server 是一个虚拟包,由以下提供者提供:
                               - percona-xtradb-cluster-server-5.7 (5.7.20-29.24-0ubuntu3),但不会安装
                               - mariadb-server-10.3 (1:10.3.17-1),但要安装 1:10.3.17-1
                               - mysql-server-8.0 (8.0.17-0ubuntu2),但已安装 8.0.17-0ubuntu2

 mariadb-server-core-10.3 :冲突:virtual-mysql-server-core 是一个虚拟包,由以下提供者提供:
                                       - percona-xtradb-cluster-server-5.7 (5.7.20-29.24-0ubuntu3),但不会安装
                                       - mariadb-server-core-10.3 (1:10.3.17-1),但要安装 1:10.3.17-1
                                       - mysql-server-core-8.0 (8.0.17-0ubuntu2),但已安装 8.0.17-0ubuntu2

 mariadb-server-10.3 :冲突:virtual-mysql-server 是一个虚拟包,由以下提供者提供:
                                  - percona-xtradb-cluster-server-5.7 (5.7.20-29.24-0ubuntu3),但不会安装
                                  - mariadb-server-10.3 (1:10.3.17-1),但要安装 1:10.3.17-1
                                  - mysql-server-8.0 (8.0.17-0ubuntu2),但已安装 8.0.17-0ubuntu2

 mysql-client-core-8.0 :冲突:mariadb-client-10.3 但要安装 1:10.3.17-1
                         冲突:mariadb-client-core-10.3 但要安装 1:10.3.17-1
                         冲突: virtual-mysql-client-core 是一个虚拟包,由以下提供:
                                    - mariadb-client-core-10.3 (1:10.3.17-1),但要安装 1:10.3.17-1
                                    - mysql-client-core-8.0 (8.0.17-0ubuntu2),但已安装 8.0.17-0ubuntu2

 mariadb-client-10.3 :冲突:virtual-mysql-client 是一个虚拟包,由以下提供者提供:
                                  - mariadb-client-10.3 (1:10.3.17-1),但要安装 1:10.3.17-1
                                  - mysql-client-8.0 (8.0.17-0ubuntu2),但已安装 8.0.17-0ubuntu2

 mariadb-client-core-10.3 :冲突:virtual-mysql-client-core 是一个虚拟包,由以下提供者提供:
                                       - mariadb-client-core-10.3 (1:10.3.17-1),但要安装 1:10.3.17-1
                                       - mysql-client-core-8.0 (8.0.17-0ubuntu2),但已安装 8.0.17-0ubuntu2

 mysql-server-core-8.0 :冲突:mariadb-server-10.3 但要安装 1:10.3.17-1
                         冲突:mariadb-server-core-10.3 但要安装 1:10.3.17-1
                         冲突: virtual-mysql-server-core 是一个虚拟包,由以下提供者提供:
                                    - percona-xtradb-cluster-server-5.7 (5.7.20-29.24-0ubuntu3),但不会安装
                                    - mariadb-server-core-10.3 (1:10.3.17-1),但要安装 1:10.3.17-1
                                    - mysql-server-core-8.0 (8.0.17-0ubuntu2),但已安装 8.0.17-0ubuntu2

以下操作将解决这些依赖性:

     删除以下软件包:                       
1)默认mysql客户端[1.0.5ubuntu2(eoan,现在)]    
2) mysql-client-8.0 [8.0.17-0ubuntu2 (eoan, 现在)]     
3) mysql-client-core-8.0 [8.0.17-0ubuntu2 (eoan, 现在)]
4) mysql-server-8.0 [8.0.17-0ubuntu2 (eoan, 现在)]     
5) mysql-server-core-8.0 [8.0.17-0ubuntu2 (eoan, 现在)]

     安装以下软件包:                      
6) mariadb 客户端 [1:10.3.17-1 (eoan)]                



接受这个解决方案吗? [是/否/q/?]

答案2

看起来你已经修复了它,但我猜最初的问题是没有清除所有必要的包。

apt-get remove --purge mysql*

只删除那些包开始与“mysql”。一些软件包,稍后列出

dpkg -l | grep mysql 

包名中有“mysql”。我非常确定在原始清除命令之后运行 dpkg list 命令会发现一些仍然安装的 mysql 软件包。我遇到了类似的问题,这是因为一些“libmysql ...”包。清除命令也需要前导通配符。 (抱歉,我已经习惯了 apt 语法,但 apt-get 也可以工作。)

apt purge *mysql*
apt purge *mariadb*
dpkg --list | grep mysql
dpkg --list | grep mariadb

当 grep'ing 时,我什至会转到“sql”和“maria”只是为了真正确定。我觉得没有必要,但我喜欢在清理时非常非常确定某些东西消失了。

我也有点惊讶的是后来的

apt-get update

命令未列出 mariadb 存储库。我认为标准 Ubuntu 存储库只能提供 10.1 版本,而 mariadb 存储库只能提供 10.4 版本(截至 2020 年 2 月)。我看到安装 10.4 链接中引用了这些 mariadb 存储库,但我在 apt-get update 命令输出中没有看到这些存储库。

答案3

MeSo2 的答案是我要走的路……但答案不是接受 aptitude 提出的第一个建议。

就我而言,我最初安装了 MySQL,然后删除了它(或者认为我已经安装了)并安装了 MariaDB 服务器(工作正常)。然后需要重新安装 MariaDB...这就是问题开始的时候,即使在似乎做了所有事情之后,删除了 MySQL 和 MariaDB 的所有痕迹。

去了之后# aptitude install mariadb-server我得到了这个建议:

     Keep the following packages at their current version:
1)     mariadb-client-10.3 [Not Installed]                
2)     mariadb-client-core-10.3 [Not Installed]           
3)     mariadb-server [Not Installed]                     
4)     mariadb-server-10.3 [Not Installed] 

...即保留未安装的东西!所以我就去了“n”。

有了这个资质之后

     Remove the following packages:                                                        
1)     default-mysql-client [1.0.5ubuntu2 (focal, now)]                                    
2)     mysql-client-8.0 [8.0.28-0ubuntu0.20.04.3 (focal-security, focal-updates, now)]     
3)     mysql-client-core-8.0 [8.0.28-0ubuntu0.20.04.3 (focal-security, focal-updates, now)]

这似乎表明,一些 MySQL 的东西实际上还没有被删除(尽管我之前尝试过类似的事情apt remove --purge mysql*)。

...然后我选择“Y”...它重新安装了 MariaDB。我可以登录 CLI 并启动 mariadb 服务。

相关内容