Сервер mariadb не работает после неудачного обновления пакета

1860
Fat Finger

Поэтому у меня была проблема на днях, когда серверный пакет mariadb не смог корректно обновиться и больше не работал.

Log started: 2016-07-19 04:00:34 Setting up mariadb-server-10.1 (10.1.16+maria-1~jessie) ... Job for mariadb.service failed. See 'systemctl status mariadb.service' and 'journalctl -xn' 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 Errors were encountered while processing: mariadb-server-10. Log ended: 2016-07-19 04:00:52 

Основное сообщение об ошибке было.

root@box{~}:systemctl status mariadb.service ● mariadb.service - MariaDB database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled) Drop-In: /etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf Active: failed (Result: exit-code) since Tue 2016-07-19 04:00:52 PDT; 17s ago Process: 38259 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=227/NO_NEW_PRIVILEGES) Process: 38256 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Process: 38098 ExecStartPre=/bin/sh -c VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS) Process: 38073 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Main PID: 38259 (code=exited, status=227/NO_NEW_PRIVILEGES)  Jul 19 04:00:52 box.example.com systemd[38259]: Failed at step NO_NEW_PRIVILEGES spawning /usr/sbin/mysqld: Invalid argument Jul 19 04:00:52 box.example.com systemd[1]: mariadb.service: main process exited, code=exited, status=227/NO_NEW_PRIVILEGES Jul 19 04:00:52 box.example.com systemd[1]: Failed to start MariaDB database server. Jul 19 04:00:52 box.example.com systemd[1]: Unit mariadb.service entered failed state. 

Попытка удалить и переустановить пакет не устранила проблему.

There is a MySQL server running, but we failed in our attempts to stop it. Stop it yourself and try again! 

Так что я попробовал небольшой менеджер по пакетам по дому.

dpkg --configure -a  apt-get clean apt-get install -f 

Особенно помогло руководство по устранению неполадок mariadb.

mysqld --help --verbose | grep 'log-error' | tail -1 mysqld --help --verbose | grep 'datadir' | tail -1 

https://mariadb.com/kb/en/mariadb/troubleshooting-installation-issues/

Только когда я попытался установить и удалить perconadb в качестве альтернативы mariadb, я обнаружил ошибку о проблемной символической ссылке, которую я удалил и, похоже, решил проблему.

Preconfiguring packages ... (Reading database ... 72430 files and directories currently installed.) Removing percona-server-server-5.7 (5.7.13-6-1.jessie) ... /usr/bin/deb-systemd-helper: error: unable to link /etc/systemd/system/mysql.service to /dev/null: File exists 
1

1 ответ на вопрос

0
Gremble

Эта проблема связана с возрастом существующего ядра, обновление ядра устраняет проблему. например, встречается в Debian Stretch с ядром 3.2, обновление до 4.9 (дистрибутив по умолчанию) исправляет это.

Похожие вопросы