17

I just installed the mariadb in my ubuntu 19.10 by sudo apt install mariadb-server mariadb-client after when I am trying to start the server by sudo systemctl start mariadb.service shell get freeze I have to use Ctl+c to get shell running.
In the status it's showing activating(start)

  • Other services are working fine with systemctl start
~$ sudo systemctl status mariadb.service  


mariadb.service - MariaDB 10.3.22 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: activating (start) since Mon 2020-04-20 08:44:57 IST; 5min ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 10705 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
  Process: 10707 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 10711 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSRE
 Main PID: 10759 (mysqld)
    Tasks: 15 (limit: 4915)
   Memory: 64.6M
   CGroup: /system.slice/mariadb.service
           └─10759 /usr/sbin/mysqld

Apr 20 08:44:57 TheCybertron systemd[1]: Starting MariaDB 10.3.22 database server...
Apr 20 08:44:57 TheCybertron mysqld[10759]: 2020-04-20  8:44:57 0 [Note] /usr/sbin/mysqld (mysqld 10.3.22-MariaDB-0ubuntu0.19.10.1) starting as process 10759 ...
1
  • Check the log files of the service. It looks like the mysqld is in the process of a galera cluster recovery. Commented Apr 20, 2020 at 6:33

1 Answer 1

40

You probably had MySQL installed beforehand. This is a known bug: MySQL installs an AppArmor profile, and the MariaDB package fails to properly uninstall it (see details on Launchpad).

You can use these commands to solve the problem (adapted from the bug mentioned above):

sudo systemctl stop mariadb
echo "/usr/sbin/mysqld { }" | sudo tee /etc/apparmor.d/usr.sbin.mysqld
sudo apparmor_parser -v -R /etc/apparmor.d/usr.sbin.mysqld

This should display Removal succeeded for "/usr/sbin/mysqld".

Then, very important:

sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/usr.sbin.mysqld

Without this, some AppArmor profile comes back after reboot (not sure from where), preventing MariaDB from loading at all (unable to load libaio).

You can then start MariaDB with sudo systemctl start mariadb

3
  • 1
    This worked, but then I had to do another fix because /etc/mysql/debian-start was missing. Anyway, thanks a lot!
    – Samuel
    Commented Apr 30, 2021 at 17:04
  • 2
    I wish all answers would work as good as this one. Thanks!!!!
    – Esteban
    Commented Aug 10, 2021 at 8:27
  • This worked and save me, so meaning the old mysql blocking the installation of mariadb
    – kenkoy2005
    Commented Jun 14, 2023 at 23:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .