Доступ запрещен для пользователя 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).
Ответы
Ответ 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.