mariadb.service start stuck at activating

8,949

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

Share:
8,949

Related videos on Youtube

Sarthak Kumar
Author by

Sarthak Kumar

Updated on September 18, 2022

Comments

  • Sarthak Kumar
    Sarthak Kumar over 1 year

    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 ...
    
    • dortegaoh
      dortegaoh about 4 years
      Check the log files of the service. It looks like the mysqld is in the process of a galera cluster recovery.
  • Andrew Schulman
    Andrew Schulman over 3 years
    Worked perfectly. Thank you so much!
  • rzo
    rzo over 3 years
    Worked perfectly. Thanks !
  • MWiesner
    MWiesner over 3 years
    Worked nicely as commented for me as well! Thx
  • Samuel
    Samuel about 3 years
    This worked, but then I had to do another fix because /etc/mysql/debian-start was missing. Anyway, thanks a lot!
  • Esteban
    Esteban over 2 years
    I wish all answers would work as good as this one. Thanks!!!!
  • Admin
    Admin almost 2 years
    Amazing answer, thank you so much