Я только что завершил обновление Debian до Stretch, и в результате у нас возникла проблема с нашим почтовым сервером (postfix / courier / saslauthd / mysql - аутентификация не выполнялась). В итоге я сделал запрещенное и перезагрузил сервер. Теперь я не могу восстановить MySQL. Ошибка systemd раздражающе расплывчата и не особо интересна. Это все, что у меня есть:
$ sudo service mysql status
● mysql.service - LSB: Start and stop the mysql database server daemon
Loaded: loaded (/etc/init.d/mysql; generated; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2017-08-29 19:13:26 UTC; 2min 49s ago
Docs: man:systemd-sysv-generator(8)
Process: 18202 ExecStop=/etc/init.d/mysql stop (code=exited, status=0/SUCCESS)
Process: 19651 ExecStart=/etc/init.d/mysql start (code=exited, status=1/FAILURE)
Aug 29 19:12:55 server.name.tld systemd[1]: Starting LSB: Start and stop the mysql database server daemon...
Aug 29 19:12:55 server.name.tld su[19677]: Successful su for mysql by root
Aug 29 19:12:55 server.name.tld su[19677]: + ??? root:mysql
Aug 29 19:12:55 server.name.tld su[19677]: pam_unix(su:session): session opened for user mysql by (uid=0)
Aug 29 19:13:26 server.name.tld /etc/init.d/mysql[19977]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
Aug 29 19:13:26 server.name.tld mysql[19651]: Starting MySQL database server: mysqld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . failed!
Aug 29 19:13:26 server.name.tld systemd[1]: mysql.service: Control process exited, code=exited status=1
Aug 29 19:13:26 server.name.tld systemd[1]: Failed to start LSB: Start and stop the mysql database server daemon.
Aug 29 19:13:26 server.name.tld systemd[1]: mysql.service: Unit entered failed state.
Aug 29 19:13:26 server.name.tld systemd[1]: mysql.service: Failed with result 'exit-code'.
Единственное дополнение, которое имеет системный журнал, это то, что mysqladmin не может подключиться к сокету. Причина в том, что MySQL фактически не запускается.
Я проверил, может ли он писать в / var / run / mysqld, а также в соответствующие каталоги журналов. Журналы MySQ: на самом деле не помогают; ни в один из них ничего не было написано с момента появления сообщений о выключении при перезагрузке. Я также дважды проверил, что все записи каталога в /etc/mysql/my.cnf находятся там, где они должны быть. У меня также были обновлены имена переменных myisam-recovery-options и key_buffer_size из старой версии.
Я могу запустить mysql вручную с помощью sudo mysqld
, процесс будет запущен, и файл сокета будет отображаться в нужном месте, но на самом деле ничего случается. Все, что я получаю в консоли, это:
2017-08-29 19:35:03 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-08-29 19:35:03 0 [Warning] Insecure configuration for --secure-file-priv: Data directory is accessible through --secure-file-priv. Consider choosing a different directory.
2017-08-29 19:35:03 0 [Note] mysqld (mysqld 5.6.36-1~dotdeb+7.1-log) starting as process 24760 ...
Предварительное редактирование: В конце концов (например, 5 + минут) он возвращается в командную строку с запущенным MySQL, но, похоже, оставаться Бег. Через некоторое время я вернусь и обнаружу, что он просто ... остановился. Журналы MySQL по-прежнему ничего не показывают, ничего не могу найти в syslog об этом. Я сдался, сделал резервную копию БД и переустановил MySQL (только фактический серверный пакет, а не -общий, поскольку он собирался удалить кучу пакетов, которыми я не хотел рисковать). После переустановки ... сделал точно так же, как и раньше.
К сожалению, даже когда MySQL временно запущен, saslauthd по-прежнему не авторизуется в БД для postfix / courier (что раньше было нормально). Думаю, это для другого поста, как только я снова заработаю MySQL.
Я как бы сошел с ума в конце очень долгого дня.
Изменить: Решение в комментариях: MySQL не запускается после обновления
Вы проверили, все ли папки / файлы (которые необходимы mySQL для запуска) установлены для правильного владельца: группа и разрешения?
Версия MySQL в Debian 8 «Jessie» - 5.5. При установке большинство пользователей установят пакет mysql-server, который зависит от пакета mysql-server-5.5. В Debian 9 «Stretch» пакет mysql-server зависит от нового пакета с именем default-mysql-server. Этот пакет, в свою очередь, зависит от mariadb-server-10.1. В Jessie нет пакета default-mysql-server.
Читать статью об обновлении mysql
к mariadb
в Переход с MySQL на MariaDB в Debian 9