如何让 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-get
or 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 服务。