Mysql перестал работать
Mysql запущен и работает в моей системе, но я не могу войти ни с каким пользователем. Я также не могу запустить / остановить / состояние сервера. Все, что я получил, это:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
/usr/bin/mysqladmin: connect to server at 'localhost' failed
ошибка: 'Доступ запрещен для пользователя'debian-sys-maint'@'localhost' (используя пароль: ДА)
Из журналов:
Mar 24 08:30:13 debian /etc/mysql/debian-start[1074]: Upgrading MySQL tables if necessary.
Mar 24 08:30:13 debian /etc/mysql/debian-start[1078]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Mar 24 08:30:13 debian /etc/mysql/debian-start[1078]: Looking for 'mysql' as: /usr/bin/mysql
Mar 24 08:30:13 debian /etc/mysql/debian-start[1078]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Mar 24 08:30:13 debian /etc/mysql/debian-start[1078]: Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/var/run/mysqld/mysqld.sock' '--host=localhost' '--socket=/var/run/mysqld/mysqld.sock' '--host=localhost' '--socket=/var/run/mysqld/mysqld.sock'
Mar 24 08:30:13 debian /etc/mysql/debian-start[1078]: /usr/bin/mysqlcheck: Got error: 1045: Access denied for user 'debian-sys-maint'@'localhost' (using password: YES) when trying to connect
Mar 24 08:30:13 debian /etc/mysql/debian-start[1078]: FATAL ERROR: Upgrade failed
Mar 24 08:30:13 debian /etc/mysql/debian-start[1111]: Checking for insecure root accounts.
Я могу войти после убийства процесса и запустить MySQL с mysqld --skip-grant-tables
но я не могу сбросить пароль debian-sys-maint:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'mypass';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
Обновить
С UPDATE mysql.user set password=PASSWORD('secret') where user='debian-sys-maint';
я могу сбросить свои пароли, но после перезагрузки / перезапуска у меня снова возникает та же проблема с этим users / mysql.
Как я могу сбросить этот пароль и почему MySQL перестал работать?
2 ответа
Вы можете запустить сервер MySQL вручную следующим образом:
$ sudo mysqld --skip-grant-tables
Тогда вы сможете войти без действительного пароля. Исправить пользователя debian-sys-maint
вопрос, вы можете получить пароль из файла /etc/mysql/debian.cnf
, Перезаписать текущий пароль этого пользователя тем, который вы найдете в этом файле. Кроме того, не забудьте переписать пароль root, если вы его забыли.
Когда закончите, перезапустите mysqld как обычно.
При запуске с пропуском гранта вы должны сбросить пароль примерно так:
UPDATE mysql.user set password=PASSWORD('secret') where user='debian-sys-maint';
а не с грантом.
(Я не проверял, правильный ли синтаксис. но просто обновляю таблицу mysql.user!)