我有debian 8.0与backports和官方mariadb存储库成立。 我已经有了mariadb-server-10.1,它试图升级到其他版本。 mariadb的升级失败了,现在已经坏了。 我不能再使用owncloud了。 使用MySQL的其他服务是WordPress,但它没有问题。
当我想升级mariadb时:我得到这个消息:
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details. invoke-rc.d: initscript mysql, action "start" failed. dpkg: error processing package mariadb-server-10.1 (--configure): subprocess installed post-installation script returned error exit status 1 dpkg: dependency problems prevent configuration of mariadb-server: mariadb-server depends on mariadb-server-10.1 (= 10.1.22+maria-1~jessie); however: Package mariadb-server-10.1 is not configured yet. dpkg: error processing package mariadb-server (--configure): dependency problems - leaving unconfigured Errors were encountered while processing: mariadb-server-10.1 mariadb-server E: Sub-process /usr/bin/dpkg returned an error code (1)
systemctl status mariadb.service
给出:
Apr 22 14:01:56 ctl mysqld[10359]: 2017-04-22 14:01:56 139845057845504 [ERROR] mysqld: Got error 'Could not get an exclusive lock; file is probably in use by another process' when trying to use aria control file '/var/lib/mysql/aria_log_control' Apr 22 14:01:56 ctl mysqld[10359]: 2017-04-22 14:01:56 139845057845504 [ERROR] Plugin 'Aria' init function returned error. Apr 22 14:01:56 ctl mysqld[10359]: 2017-04-22 14:01:56 139845057845504 [ERROR] Plugin 'Aria' registration as a STORAGE ENGINE failed. Apr 22 14:01:56 ctl mysqld[10359]: 2017-04-22 14:01:56 139845057845504 [Note] Plugin 'FEEDBACK' is disabled. Apr 22 14:01:56 ctl mysqld[10359]: 2017-04-22 14:01:56 139845057845504 [ERROR] Unknown/unsupported storage engine: InnoDB Apr 22 14:01:56 ctl mysqld[10359]: 2017-04-22 14:01:56 139845057845504 [ERROR] Aborting Apr 22 14:01:57 ctl systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE Apr 22 14:01:57 ctl systemd[1]: Failed to start MariaDB database server. Apr 22 14:01:57 ctl systemd[1]: mariadb.service: Unit entered failed state. Apr 22 14:01:57 ctl systemd[1]: mariadb.service: Failed with result 'exit-code'.
journalctl -xe
给出:
Apr 22 15:05:25 ctl sshd[10944]: Received disconnect from 61.177.172.60: 11: [preauth] Apr 22 15:05:25 ctl sshd[10944]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=61.177.172.60 user=root Apr 22 15:06:12 ctl sshd[10946]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=61.177.172.60 user Apr 22 15:06:14 ctl sshd[10946]: Failed password for root from 61.177.172.60 port 51871 ssh2 Apr 22 15:06:17 ctl sshd[10946]: Failed password for root from 61.177.172.60 port 51871 ssh2 Apr 22 15:06:20 ctl sshd[10946]: Failed password for root from 61.177.172.60 port 51871 ssh2 Apr 22 15:06:21 ctl sshd[10946]: Received disconnect from 61.177.172.60: 11: [preauth]
ps aux |的输出 grep mysql是:
tchokap+ 11212 0.0 0.0 12728 2208 pts/0 S+ 15:31 0:00 grep mysql root 16860 0.0 0.0 40540 3196 ? S Feb01 0:00 sudo mysqld --binlog_format=MIXED mysql 16861 0.0 8.2 1064928 333048 ? Sl Feb01 103:34 mysqld --binlog_format=MIXED
我认为日志ctl是指我的服务器无法parsing主机ctl的其他问题。
无论出于何种原因,看起来像是在2月1日使用命令sudo mysqld --binlog_format=MIXED
手动启动了mariadb。
直接调用mysqld而不是通过init系统启动它(systemd在这种情况下)是为什么事情现在处于一个奇怪的状态。
升级过程假设它可以要求init系统停止mariadb,然后进行升级,但是你有一个mysqld
实例,init系统一无所知。
因此,尽pipe状态为“down”,为什么仍然有一个mysqld
正在运行。
您应确保您在命令行( binlog_format=MIXED
)中提供的设置位于configuration文件( my.cnf
)中,停止手动启动的mysqld
,然后重试。
在我的情况下是mysqld_safe
进程,每次我杀死mysqld重启mysqld。
做一个ps aux | grep mysqld
ps aux | grep mysqld
取每个进程的PID(第二列)
为每个进程运行一个kill -s 9 PID
(你可以写一个以上的PID,将它们分开一个空格。
之后,尝试再次运行apt-get upgrade
或apt-get dist-upgrade