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 filesIt 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-serverHow 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 autocleanThen I re-installed MariaDB Server
To install
sudo apt update
sudo apt install mariadb-serverTo 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.mysqldwill fix it. Afterwards, mariaDB can be installed and/or the service can be started.