Mysql перестал работать

4070
tonymarschall

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 перестал работать?

0

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

2
Khaled

Вы можете запустить сервер MySQL вручную следующим образом:

$ sudo mysqld --skip-grant-tables 

Тогда вы сможете войти без действительного пароля. Чтобы исправить debian-sys-maintпроблему пользователя, вы можете получить пароль из файла /etc/mysql/debian.cnf. Перезаписать текущий пароль этого пользователя тем, который вы найдете в этом файле. Кроме того, не забудьте перезаписать пароль root, если вы его забыли.

Когда закончите, перезапустите mysqld как обычно.

Mysql снова работает, но я не могу сбросить пароль. mysql> ПРЕДОСТАВЛЯЕТ ВСЕ ПРИВИЛЕГИИ НА *. * TO 'debian-sys-maint' @ 'localhost', ОПРЕДЕЛЯЕМЫМ 'mypass'; ОШИБКА 1290 (HY000): Сервер MySQL работает с опцией --skip-grant-tables, поэтому он не может выполнить этот оператор tonymarschall 12 лет назад 0
1
frisbee23

при запуске с пропуском гранта вы должны сбросить пароль примерно так:

UPDATE mysql.user set password=PASSWORD('secret') where user='debian-sys-maint'; 

а не с грантом.

(Я не проверял, правильный ли синтаксис. но просто обновляю таблицу mysql.user!)

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