I have just performed a dist-upgrade on ubuntu 20.04 server and got stuck on mariadb-server-10.3
The apt process hung on this package and after 20 minutes waiting I have killed the process. After that, I checked mariadb and it was running with v. 10.3 but apt is still claiming for configuration:
dpkg --configure -a Setting up mariadb-server-10.3 (1:10.3.29-0ubuntu0.20.04.1) Hanging forever. But if I check installed packages, I get this:
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 It won't be a problem, except that from now on, every time I need to update a package/system I going through this hanging problem:
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 How to fix?
33 Answers
I had to reinstall to fix. Obviously if you can do a backup first, do one!
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
Note: I didn't have to restore any of my databases. I saw the following message while running the command above:
dpkg: warning: while removing mariadb-server-core-10.3, directory '/usr/share/mysql' not empty so not removed
So if you want to do a backup, which you should there are no excuses, you can do so from ('/var/lib/mysql') the your databases should be stored.
Reinstall/restore MariaDB:
sudo apt install mariadb-server mariadb-client
I had to the existing mysql-server on the server. This is because I have no need for MySQL on the server
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 Then I re-installed MariaDB Server
To install
sudo apt update sudo apt install mariadb-server To setup
sudo mysql_secure_installation If you had mySQL installed before, and your syslog shows
AVC apparmor="DENIED" operation="sendmsg" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/mysqld" no purging, reinstalling or the like will help.
A lingering AppArmor profile will prevent mariaDB from successfully starting.
So effectively anyone who wants to switch from mySQL to mariaDB on Debian or Ubuntu will fail miserably (could it be there is some Oracle maintainer involved in the package creation ? ;-) )
This is known since 18.04, including a fix, and not fixed until now.
echo "/usr/sbin/mysqld { }" > /etc/apparmor.d/usr.sbin.mysqld apparmor_parser -v -R /etc/apparmor.d/usr.sbin.mysqld will fix it. Afterwards, mariaDB can be installed and/or the service can be started.