1

Поэтому у меня была проблема на днях, когда серверный пакет 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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .