2009-03-13 2 views
12

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

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

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

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

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

+1

Я пробовал --skip-grant-tables и conencting с использованием -u root, но я все равно получаю: Доступ запрещен для пользователя root '@' localhos t '(с использованием пароля: НЕТ). – 2009-03-13 10:00:21

ответ

14

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

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

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

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' | 

Смотрите также:

+1

Это хорошо, приветствия. Официальные гиды просто казались немного затянутыми и неудобными ... –

+0

Получил ту же проблему. Также я должен добавить эти строки перед созданием пользовательской строки в вашем_init_file.sql ** drop user 'root' @ 'localhost'; привилегии флеша; ** –

1

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

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

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

mysql -u root 

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

НТН

2

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

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 как корень без пароля

mysql -u root mysql 

Шаг 4: Запустите UPDATE запрос для сброса пароля суперпользователя

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

Шаг 5: Прекратите MySQL безопасный демон

Шаг 6: Запустите MySQL daemon

Смежные вопросы