Назад | Перейти на главную страницу

MySQL хочет пароль, но он пуст

mysql -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

mysql -uroot -p
Enter password:       <-- leave blank, hit enter without entering anything

mysql>                <-- i am logged in

ПРИМЕЧАНИЕ. Это новая установка экземпляра mysql.

Итак, если пароль пустой, почему он не авторизует меня без флага -p?

Для небольшого пояснения. Я столкнулся с этой проблемой при попытке изменить пароль с помощью сценария:

Для этого мы используем сценарий bash.

это поведение по умолчанию для пустого пароля. В этом нет ничего плохого.

Чтобы позволить себе войти в MySQL без необходимости вводить пароль в приглашении, добавьте свой пароль в файл с именем .my.cnf в вашем домашнем каталоге.

[client]
user=root
password=

Теперь измените разрешение файла .my.cnf на 400 или 600.

chmod 400 .my.cnf

ИЛИ

chmod 600 .my.cnf

Сейчас

mysql

команда автоматически войдет в систему.

Поскольку MySQL настроен на использование пароля auth, и если вы не укажете пароль при вызове команды (оставив его на «-p»), вам будет предложено ввести пароль MySQL.

Возможно, будет проще думать о своем пароле как о возврате каретки, а не как о пустом

Он отправляет пароль, хотя ему его не сообщают; это откуда-то получается.

Найдите файл на ~/.my.cnf.

Но установите пароль для своего пользователя root как можно скорее - если вы, возможно, не вошли в систему анонимно (select current_user();)?