Подтвердить что ты не робот

Доступ запрещен для пользователя debian-sys-maint

У меня была проблема с mysql. Я попытался выполнить это:

echo "show databases" | mysql -B -N

Но я получил:

ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)

Но когда я выполняю:

/etc/init.d/mysql restart 

У меня есть "ОК".

Я сделал

GRANT ALL PRIVILEGES on *.* TO [email protected] IDENTIFIED BY PASSWORD 'your password' WITH GRANT OPTION; FLUSH PRIVILEGES;

где пароль от /etc/mysql/debian.cnf. Но это не помогло. (разумеется, я покраснел и перезапустил mysql).

4b9b3361

Ответ 1

Проблема заключается в том, что ваш оператор GRANT использует предложение IDENTIFIED BY PASSWORD, и в этом случае mysql ожидает получить хешированный пароль, а не простой текст.

Используйте IDENTIFIED BY 'your password' вместо этого, если вы хотите указать пароль открытого текста.

Ответ 2

Это потому, что у Debian есть учетная запись MySQL debian-sys-maint, используемая для включения/выключения и проверки состояния. Пароль для этого пользователя должен быть таким же, как и в /etc/mysql/debian.cnf. Файл выглядит следующим образом:

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = <password>
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = <password>
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

Если пароль не совпадает (например, потому что вы его вручную изменили), init script больше не будет работать. Вы должны установить пароль в соответствии с файлом. Так

mysql -u root -p
# Then type MySQL root password
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '<password>';

Ответ 3

Самый простой способ восстановления пользователя debian-sys-maint - перенастроить пакет mysql-server-5.5. Если вы знаете пароль для пользователя root из MySQL, вы можете попытаться восстановить пользователя и его пароль в /etc/mysql/debian.cnf.

sudo dpkg-reconfigure mysql-server-5.5

ПРИМЕЧАНИЕ. Если вы не можете остановить mysql pid, просто запустите sudo killall mysqld. Это необходимо для перенастройки mysql-сервера-5.5.