首页 > 解决方案 > mariadb.service 的作业失败,因为控制进程以错误代码退出

问题描述

我删除并重新安装了 mariadb,我收到了这个错误:

“mariadb.service 的作业失败,因为控制进程以错误代码退出。有关详细信息,请参阅“systemctl status mariadb.service”和“journalctl -xe”。”

当我使用 systemctl“status mariadb.service”时,我明白了

● mariadb.service - MariaDB 10.4.13 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
    Drop-In: /etc/systemd/system/mariadb.service.d
             └─migrated-from-my.cnf-settings.conf
     Active: failed (Result: exit-code) since Sat 2020-05-30 09:37:19 +00; 15s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 9859 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
    Process: 9860 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 9862 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
    Process: 10002 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 10034 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 10036 ExecStartPost=/etc/mysql/debian-start (code=exited, status=203/EXEC)
   Main PID: 10002 (code=exited, status=0/SUCCESS)
     Status: "MariaDB server is down"

mai 30 09:37:17 Tv mysqld[10002]: 2020-05-30  9:37:17 0 [Note] InnoDB: FTS optimize thread exiting.
mai 30 09:37:17 Tv systemd[1]: mariadb.service: Control process exited, code=exited, status=203/EXEC
mai 30 09:37:17 Tv mysqld[10002]: 2020-05-30  9:37:17 0 [Note] InnoDB: Starting shutdown...
mai 30 09:37:17 Tv mysqld[10002]: 2020-05-30  9:37:17 0 [Note] InnoDB: Dumping buffer pool(s) to /var/lib/mysql/ib_buffer_pool
mai 30 09:37:17 Tv mysqld[10002]: 2020-05-30  9:37:17 0 [Note] InnoDB: Buffer pool(s) dump completed at 200530  9:37:17
mai 30 09:37:19 Tv mysqld[10002]: 2020-05-30  9:37:19 0 [Note] InnoDB: Shutdown completed; log sequence number 61044; transaction id 22
mai 30 09:37:19 Tv mysqld[10002]: 2020-05-30  9:37:19 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
mai 30 09:37:19 Tv mysqld[10002]: 2020-05-30  9:37:19 0 [Note] /usr/sbin/mysqld: Shutdown complete
mai 30 09:37:19 Tv systemd[1]: mariadb.service: Failed with result 'exit-code'.
mai 30 09:37:19 Tv systemd[1]: Failed to start MariaDB 10.4.13 database server.

附言

要删除包,我首先使用此命令:

$ sudo apt-get remove --purge mysql-server mysql-client mysql-common -y
$ sudo apt-get autoremove -y
$ sudo apt-get autoclean

我搜索所有文件

sudo dpkg -l | grep -i mysql

彻底删除

我重新安装它

sudo apt-get install libmysqlclient-dev mysql-client
sudo apt-get install mysql-server


sudo apt-get remove mysql-server mysql-client mysql-common
sudo apt-get purge mysql-server mysql-client mysql-common
sudo apt-get autoremove

我使用这个网站来帮助这个[如何使用配置和库文件完全删除 MySQL?

标签: mysqlmariadb

解决方案


如果 mysql 以某种方式停止并且另一个服务使用了 mysql 正在使用的端口,那么它会给出这个错误。

可能的解决方案:

1)我假设mysql端口号是3306

netstat -nlp | grep 3306
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1206/not_mysqld
kill -9 1206

如果结果不是 mysqld,则找到解决方案。杀死端口并再次运行 mysql。

2) 重启机器。因为如果您在遇到此错误时没有意识到发生了什么,则可能意味着您没有进行任何永久性更改,并且当您再次打开计算机时,旧端口很可能会开始工作。


推荐阅读