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

Я знаю, что некоторые пользователи могут сказать, что это дублирование, но серьезно я прочесал ответы и ответы в Интернете более половины дня, и я так расстроен, что собираюсь взорваться.

Теперь, когда терапевтическое объяснение закончено, я установил MySql Server и MariaDb 10 из репозиториев Ubuntu на Ubuntu 12.04 LTS и ввел пароль root при его установке [Когда появляется розовый экран и запрашивает пароль root], и установка проходит через гладко, как нож сквозь масло.

Теперь настоящее разочарование начинается в любом из следующих двух сценариев:

  1. Когда я ввожу команду sudo /usr/bin/mysql_secure_installation, мне будет предложено ввести пароль root

или же

2.При вводе команды mysql -u root -p мне предлагается ввести пароль.

Пожалуйста, мне действительно нужна помощь в этом - я потерял счет, сколько раз мне приходилось удалять и переустанавливать MySQL или MariaDb, потому что эта боль в шее приводит к ошибке.

4 ответа

Решение

Я думаю, что, возможно, понял проблему - это связано с длинным паролем. Я думаю, что об этом следует сообщать разработчикам MySQl и MariaDB как об ошибке, потому что при установке вы можете создать пароль длиной более 100 символов, но при попытке войдите в MySQl или MariaDB, когда он находится в производстве, вы получите вышеуказанную ошибку.

Я так рада, что поняла это после такой большой боли - действительно удивительно, что это не было идентифицировано как ошибка, учитывая, сколько лет MySQL был в производстве.

Таким образом, в основном одно решение состоит в том, чтобы пройти следующие шаги, чтобы решить вышеупомянутую проблему:

  1. Начните с пустого пароля на непроизводственном сервере, и если он работает

  2. Если вы успешно выполнили шаг 1, перейдите к обеспечению безопасности установки MySQL, введя следующую команду: sudo / usr / bin / mysql_secure_installation и попробуйте ввести более сложный пароль - сочетание строчных букв, цифр, символов и заглавных букв не менее 8 символы должны быть в порядке.

  3. Я рекомендую начинать с 8 и двигаться вверх, пока не достигнете потолка с количеством символов, которое вы можете ввести.

Вышесказанное должно стать шагом в правильном направлении для обеспечения безопасности вашего сервера MySQL.

Проверьте файл: /etc/mysql/mariadb.conf.d/mysqld.cnf

проверьте, существует ли эта строка:

plugin-load-add = auth_socket.so

затем перейдите к MariaDB:

sudo mysql -u root

и сделайте эти модификации:

MariaDB [(none)]>use mysql;
MariaDB [(none)]>update user set plugin=' ' where User='root';
MariaDB [(none)]>flush privileges;
MariaDB [(none)]>exit

У меня не было доступа к mysqlworkbench, но после того, как я применил это решение, все хорошо руан...

Попробуйте эту команду в терминале:

mysqladmin -u root -pcurrentpassword password 'newpassword'

Затем введите:

mysql -u root -pnewpassword

Лучший ответ здесь

Это объясняет, что происходит. Это объясняет, почему вы не должны просто отключить плагин. Он объясняет, как обойти это (войти с помощью sudo, создать новую учетную запись суперпользователя, которая не является root).

Обратите внимание, что это решение David Leonardo не переживает перезагрузку.

Другие вопросы по тегам