15

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 ...
Sarthak Kumar
  • 253
  • 2
  • 5

1 Answers1

31

You probably had MySQL installed beforehand. 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

Ale
  • 1,613
  • 17
  • 25