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

MySQL: не удается получить доступ к учетной записи root

Я запускаю MySQL 5.x в локальном окне Windows и, используя администратора MySQL, я не могу подключиться к базам данных, которые я создал с помощью учетной записи root. Ошибка, которую я получаю:

Номер ошибки MySQL 1045 Доступ запрещен для пользователя 'root' @'localhost' (используя пароль: ДА)

Я не могу вспомнить изменение учетных данных учетных записей root, но я знаю, что пытался предоставить другим компьютерам доступ к локальной сети в db, добавив их IP-адреса. Одна вещь, которую я сделал для одного из IP-адресов, заключалась в том, чтобы указать доступ к учетной записи 'root' вместо root, т.е. Я окружил корень одиночными кавычками. Все используют администратор MySQL. Может ли это быть причиной, по которой я не могу войти с помощью root?

Кроме того, существует ли способ создать новую или reset учетную запись root? Как уже упоминалось, у меня есть полный доступ к моей коробке.

См. эти вопросы

4b9b3361

Ответ 1

Вы можете использовать файлы init. Проверьте официальную документацию MySQL на Как Reset Пароль Root (включая комментарии для альтернативных решений).

Таким образом, в основном используя файлы init, вы можете добавить любые SQL-запросы, необходимые для исправления вашего доступа (например, GRAND, CREATE, FLUSH PRIVILEGES и т.д.) в файл инициализации (любой файл).

Вот мой пример восстановления учетной записи root:

echo "CREATE USER 'root'@'localhost' IDENTIFIED BY 'root';" > your_init_file.sql
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;" >> your_init_file.sql 
echo "FLUSH PRIVILEGES;" >> your_init_file.sql

и после создания файла вы можете запустить:

killall mysqld
mysqld_safe --init-file=$PWD/your_init_file.sql

затем, чтобы проверить, работает ли это, нажмите Ctrl+Z и введите: bg, чтобы запустить процесс с переднего плана в фоновом режиме, а затем проверьте свой доступ:

mysql -u root -proot
mysql> show grants;
+-------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]                                                                                   |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' |

См. также:

Ответ 2

В руководстве по MySQL есть раздел как reset пароль root, который поможет решить вашу проблему.

Ответ 3

У меня такая же проблема при обращении к mysql с помощью root. Я обнаружил, что некоторые файлы базы данных не имеют разрешения пользователя mysql, который является пользователем, который запустил демон сервера mysql.

Мы можем проверить это с помощью команды ls -l /var/lib/mysql, если у пользователя mysql нет разрешения на чтение или запись на некоторые файлы или каталоги, что может вызвать проблему. Мы можем изменить владельца или режим этих файлов или каталогов с помощью команд chown/chmod.

После этих изменений перезапустите демон mysqld и войдите в систему с помощью root:

mysql -u root

Затем измените пароли или создайте других пользователей для входа в mysql.

НТН

Ответ 4

Это сработало для меня:

https://blog.dotkam.com/2007/04/10/mysql-reset-lost-root-password/

Шаг 1: остановите демон MySQL, если он в данный момент запущен

  ps -ef | grep mysql      - checks if mysql/mysqld is one of the running processes.

  pkill mysqld             - kills the daemon, if it is running.

Шаг 2: Запустите безопасный демон MySQL с пропущенными таблицами грантов

  mysqld_safe --skip-grant-tables &

  mysql -u root mysql

Шаг 3: Войдите в MySQL как root без пароля

  mysql -u root mysql

Шаг 4: Запустите запрос UPDATE на reset пароль root

  UPDATE user SET password=PASSWORD("value=42") WHERE user="root";
  FLUSH PRIVILEGES;

Шаг 5: Остановите безопасный демон MySQL

Шаг 6: Запустите демон MySQL