Назад | Перейти на главную страницу

сломанное обновление Mariadb Debian

У меня есть 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 журнала относится к другой проблеме, связанной с тем, что мой сервер не может разрешить ctl хоста.

Похоже, вы по какой-то причине запустили mariadb вручную с помощью команды sudo mysqld --binlog_format=MIXED 1 февраля.

Вызов mysqld напрямую вместо его запуска через систему инициализации (в данном случае systemd) - вот почему сейчас все в странном состоянии.

Процесс обновления предполагал, что он может попросить систему инициализации остановить mariadb, а затем выполнить обновление, но у вас есть mysqld экземпляр, о котором система инициализации ничего не знает.

Следовательно, почему до сих пор mysqld работает, несмотря на статус "не работает".

Вы должны убедиться, что параметр, указанный в командной строке (binlog_format=MIXED) находится в файле конфигурации (my.cnf), остановите запуск вручную mysqld а затем попробуйте еще раз.

В моем случае был mysqld_safe процесс, который перезапускал mysqld каждый раз, когда я его убивал.

Сделать ps aux | grep mysqld

Возьмите PID каждого процесса (второй столбец)

Запустить kill -s 9 PID для каждого процесса (вы можете написать более одного PID, разделяя их одним пробелом.

После этого попробуйте в другой раз запустить apt-get upgrade или apt-get dist-upgrade