我刚刚在 ubuntu 20.04 服务器上执行了 dist-upgrade,但卡在了 mariadb-server-10.3 上
apt 进程挂起于此包,等待 20 分钟后,我终止了该进程。之后,我检查了 mariadb,它正在运行 v. 10.3,但 apt 仍在要求配置:
dpkg --configure -a
Setting up mariadb-server-10.3 (1:10.3.29-0ubuntu0.20.04.1)
一直挂着。但如果我检查已安装的软件包,就会得到以下信息:
dpkg -l | grep maria*
ii mariadb-client-10.3 1:10.3.29-0ubuntu0.20.04.1 amd64 MariaDB database client binaries
ii mariadb-client-core-10.3 1:10.3.29-0ubuntu0.20.04.1 amd64 MariaDB database core client binaries
ii mariadb-common 1:10.3.29-0ubuntu0.20.04.1 all MariaDB common metapackage
iU mariadb-server 1:10.3.29-0ubuntu0.20.04.1 all MariaDB database server (metapackage depending on the latest version)
iF mariadb-server-10.3 1:10.3.29-0ubuntu0.20.04.1 amd64 MariaDB database server binaries
ii mariadb-server-core-10.3 1:10.3.29-0ubuntu0.20.04.1 amd64 MariaDB database core server files
这不会是个问题,只是从现在开始,每次我需要更新包/系统时,都会遇到这个挂起的问题:
dpkg: dependency problems prevent configuration of mariadb-server:
mariadb-server depends on mariadb-server-10.3 (>= 1:10.3.29-0ubuntu0.20.04.1); however:
Package mariadb-server-10.3 is not configured yet.
dpkg: error processing package mariadb-server (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
mariadb-server-10.3
mariadb-server
怎么修?
答案1
我不得不重新安装才能修复。显然,如果您可以先备份,那就备份吧!
sudo apt remove mariadb-server mariadb-server-10.3 mariadb-server-core-10.3 mariadb-client mariadb-client-10.3 mariadb-client-core-10.3 mariadb-common
注意:我不需要恢复任何数据库。运行上述命令时,我看到了以下消息:
dpkg: warning: while removing mariadb-server-core-10.3, directory '/usr/share/mysql' not empty so not removed
因此,如果您想进行备份,您应该没有任何借口,您可以从应该存储数据库的('/var/lib/mysql')中进行备份。
重新安装/恢复 MariaDB:
sudo apt install mariadb-server mariadb-client
答案2
我必须使用服务器上现有的 mysql-server。这是因为我不需要服务器上的 MySQL
sudo systemctl stop mysql
sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql
sudo apt autoremove
sudo apt autoclean
然后我重新安装了 MariaDB 服务器
安装
sudo apt update
sudo apt install mariadb-server
建立
sudo mysql_secure_installation
答案3
如果你之前安装过 mySQL,并且你的系统日志显示
AVC apparmor="DENIED" operation="sendmsg" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/mysqld"
清除、重新安装或类似操作都无济于事。
残留的 AppArmor 配置文件将阻止 mariaDB 成功启动。
因此实际上任何想要在 Debian 或 Ubuntu 上从 mySQL 切换到 mariaDB 的人都会失败(可能是某些 Oracle 维护人员参与了软件包创建?;-))
这是从 18.04 版开始已知的,包括一个修复,但直到现在还没有修复。
https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
echo "/usr/sbin/mysqld { }" > /etc/apparmor.d/usr.sbin.mysqld
apparmor_parser -v -R /etc/apparmor.d/usr.sbin.mysqld
将会修复此问题。之后,可以安装 mariaDB 和/或启动服务。