Ubuntu 20.04 で mysql-server を削除してから、mariadb-server をインストールすると、MariaDB が systemctl で起動できないという問題が発生しました。
次の記事の通りに行って問題が解決しました。
Ubuntuでmysql-serverをmariadb-serverで置き換えるとsystemd経由でmariadbが起動できない
問題発生時の状況
しばらく、MariaDB は動いているが、しばらくして止まります。
$ sudo systemctl start mysql
Job for mariadb.service failed because a timeout was exceeded.
See "systemctl status mariadb.service" and "journalctl -xe" for details.
解決方法です。
$ sudo aa-remove-unknown
Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd
Removing '/usr/sbin/mysqld'
MariaDB を起動します。
sudo systemctl start mysql
2020-7-21 に同じ問題が発生しました。
トリガーとなったのは、カーネルを上げたことです。
次のようなログが出ていました。
2020-07-21 9:52:49 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2020-07-21 9:52:49 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2020-07-21 9:52:49 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2020-07-21 9:52:49 0 [Note] InnoDB: Waiting for purge to start
しばらくは、mysql が動いているのですが、systemd がタイムアウトになり、mysql も停止します。
結局、解決方法は、
$ sudo aa-remove-unknown
Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd
Removing '/usr/sbin/mysqld'
2020-7-22 に同じ問題が発生しました。
原因は再起動です。
恒久的な解決でないことが分かりました。
次の対策を打ってみました。
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/