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

MySql ERROR 1045 (28000): доступ запрещен для пользователя 'root' @'localhost' (с использованием пароля: НЕТ)

Я попробовал несколько решений из StackOverflow, но не имел никакого успеха. Я нахожусь в Mac OSX (Sierra 10.12.3), пытаясь создать новую базу данных и пользователя. От терминала я введите:

mysql -u root

который выводит эту ошибку:

ОШИБКА 1045 (28000): Доступ запрещен для пользователя 'root' @'localhost' (с использованием пароля: НЕТ)

Чтобы попробовать и разрешить это, я остановил mysql из "Системных настроек", затем с терминала, набранного:

sudo mysqld_safe —skip-grant-tables

Я открыл вторую вкладку и ввел:

mysql -u root

Затем из mysql:

update mysql.user set password_expired = 'N', authentication_string=PASSWORD('newpassword') where user = 'root';

flush privileges;

Затем перезагрузите компьютер (убить процесс с помощью CMD + C не работает). После перезапуска, попытка mysql -u root по-прежнему вызывает ту же ошибку.

Я могу получить доступ к mysql через клиент MySQL и пользователь без полномочий root.

Любая помощь приветствуется.

4b9b3361

Ответ 1

Просто для подтверждения: вы уверены, что используете MySQL 5.7, а не MySQL 5.6 или более раннюю версию. И в столбце плагина содержится "mysql_native_password". (До MySQL 5.7 хэш пароля хранился в столбце с именем password. Начиная с MySQL 5.7, столбец пароля удаляется, а пароль хранится в столбце authentication_string.) И вы также проверили содержимое строки аутентификации соответствует возврату из PASSWORD ('mysecret'). Кроме того, есть ли причина, по которой мы используем DML для таблицы mysql.user вместо использования синтаксиса SET PASSWORD FOR?  - spencer7593

Итак, просто убедитесь, что в столбце плагина содержится "mysql_native_password".

Не моя работа, но я прочитал комментарии и заметил, что это было указано как ответ, но пока не было опубликовано как возможный ответ.

Ответ 2

По соображениям безопасности mysql -u root не работает, пока вы не передадите команду -p, поэтому попробуйте сделать это ниже.

 mysql -u root -p[Enter]
 //enter your localhost password

Ответ 3

Вы должны запустить mysql с помощью xampp-controle.exe в папке XAMPP. После этого логин:

mysql -u root

Ответ 4

mysql -u root -p;

И mysql запросит пароль

Ответ 5

Возможно ли, что пароль root не так, как вы думаете? Вы проверили файл /root/.mysql_secret для пароля? Это местоположение по умолчанию для автоматического пароля root, который генерируется начиная с версии 5.7.

cat /root/.mysql_secret

Ответ 6

просто используйте:

$ sudo mysql

без параметра -u root.

Ответ 7

Если вам почему-то нужно пропустить приглашение пароля, вы можете ввести пароль в команде (Dangerous)

mysql -u root --password=secret

Ответ 8

Попробуйте это (в Windows, я не знаю, как в других), если вы изменили пароль, теперь не работают.

1) убить mysql 2) резервная копия/mysql/папка с данными 3) перейти в папку /mysql/backup 4) копировать файлы из /mysql/backup/mysql в папку /mysql/data/mysql (переписать) 5) запустите mysql

В моем XAMPP на Win7 он работает.