Linux

mariadb.service 啟動卡在啟動

  • July 7, 2020

我剛剛在我的 ubuntu 19.10 中安裝了 mariadb,sudo apt install mariadb-server mariadb-client之後我試圖通過sudo systemctl start mariadb.serviceshell get freeze 啟動伺服器,我必須使用Ctl+c它來執行 shell。

在顯示啟動(開始)的狀態下

  • 其他服務使用 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 ...

您可能事先安裝了 MySQL。是一個已知錯誤:MySQL 安裝了 AppArmor 配置文件,而 MariaDB 包無法正確解除安裝它(請參閱Launchpad 上的詳細資訊)。

您可以使用這些命令來解決問題(改編自上面提到的錯誤):

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

這應該顯示Removal succeeded for "/usr/sbin/mysqld".

然後,非常重要:

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

如果沒有這個,一些 AppArmor 配置文件會在重新啟動後返回(不確定從哪裡),從而阻止 MariaDB 載入(無法載入 libaio)。

然後您可以使用以下命令啟動 MariaDBsudo systemctl start mariadb

引用自:https://serverfault.com/questions/1013128