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.
mysqladmin -u root password abc
не будет работать (доступ запрещен)mysqladmin -u root -p password abc
не может использоваться, потому что он запрашивает пароль, и нам нужно автоматизировать это. mysqladmin -u root -p'' password abc
тоже не работаетэто поведение по умолчанию для пустого пароля. В этом нет ничего плохого.
Чтобы позволить себе войти в 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();
)?