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 ответа2

2

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

$ sudo mysqld --skip-grant-tables

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

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

1

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

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

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

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

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