При работе с системой MySQL могут возникнуть самые разные ошибки, и на этапе освоения программы разобраться с ними может быть сложно. Одна из наиболее распространенных проблем — ошибка 1045, которая сопровождается сообщением Access denied for user ‘root’@’localhost’ (Using password: YES и NO). Сегодня я расскажу, как ее исправить.
Понять суть проблемы можно, переведя сообщение об ошибке на русский язык. Означает оно, что пользователю с именем root на машине localhost запрещен доступ к БД при использовании пароля или без него.
Причины ошибки Access denied for user ‘root’@’localhost’
Чтобы свободно получить доступ в MySQL, должно совпасть три параметра, описывающих пользователя базы данных — имя, название машины и пароль. Если есть какие-то несовпадения, доступ будет запрещен. Самая простая причина проблемы — неправильный ввод пароля. Кроме этого, вызывать ошибку может неправильный синтаксис.
В системе MySQL нет простой зависимости имя пользователя – пароль, название хоста играет важную роль в получении доступа к БД. Оно может иметь вид IP-адреса, доменного имени, ключевого слова (например, localhost) или символа, объединяющего несколько машин в группу (например, % — любой хост, кроме локального).
Наиболее распространенные ошибки при обращении к БД:
- При присвоении прав новому пользователю не был указан адрес машины, с которой он может подключаться. В таком случае ему автоматически будет разрешено пользоваться БД с любого хоста, кроме локального, и при попытке подключения с localhost возникнет ошибка доступа.
- Неправильно расставленные кавычки. Если при создании пользователя написать ‘username@localhost’, это будет значить, что username@localhost может подключаться с любой машины, кроме локальной, а не что username может подключаться с компьютера localhost. Логин пользователя и имя машины должны иметь свою пару кавычек.
- Использование пароля при его отсутствии в базе данных.
В зависимости от того, при каком способе подключения к БД возникает ошибка Access denied for user ‘root’@’localhost’ (Using password: YES или NO), используются разные методы решения проблемы.
Как исправить ошибку 1045 в MySQL
Если ошибка Access denied for user появляется с указанием Using password: YES, проблема заключается в неправильном вводе пароля. Проверить это можно, открыв таблицу mysql.user, в которой хранятся данные обо всех пользователях.
Порядок действий таков:
- Откройте таблицу пользователей.
- Проверьте, существует ли пользователь root с хостом localhost. Если он есть, смотрите на поле «password». Если там пусто, зайти в базу можно без ввода пароля. Если там что-то есть, значит, вы вводите неправильный пароль.
- Смените пароль командой SET PASSWORD.
- Если пользователя root нет, создайте его, установите пароль и предоставьте ему права.
После этого в базу данных можно зайти. Если изменить данные не получается, следует использовать параметр —skip-grant-tables, который отменяет все настройки разрешений.
Если ошибка появляется с ключом (Using password: NO), нужно сделать следующее изменить файл config.inc.php, указав в нем правильные данные. Если проблема возникает при установке MySQL, нужно удалить базы данных старой версии программы или сменить пароль для доступа к ним, используя режим —skip-grant-tables.
Таким образом, ошибка Access denied for user ‘root’@’localhost’ (Using password: YES или NO) возникает при несоответствии пароля и имени пользователя и легко исправляется заменой данных для входа.
я должен руками текст набивать? почему нельзя скопировать текст?1
Где скопировать это можно никто не знает? я хз как половину символов написать, опять гуглить чтоль?
Эту ошибку HY000/1045 Access denied for user «имя пользователя» @ «localhost» using password: YES, помогло прописать следующее вместо имени пользователя вписал root и стер пароль .
Был запрос — mysqli_connect(HOST, USER, PASS, DB) а стал — mysqli_connect(HOST, root, , DB)
This blog was… how do you say it? Relevant!!
Finally I have found something that helped
me. Kudos!
как открыть таблицу mysql.user ??? Вы входите в MySql и после открываете. А входить не получается и следовательно таблицу не открывает. Да и еще: Как войти в режим
—skip-grant-tables — Вы же ничего не написали. Как команды написать и как войти в этот режим???
«Откройте таблицу пользователей.»Нет никаких таблиц, в доступе отказано
Спасибо большое очень сильно помогли
YES, помогло прописать следующее вместо имени пользователя вписал root и стер пароль .
Добрый день! А если эта ошибка Access denied for user ‘root’@’localhost’ (using password: NO) появилась когда свою базу SQL забросил на хост и поддержка хоста молчит, но у меня есть доступ только к phpmyadmin, где я вижу свою базу. Что мне делать чтобы исправить эту ошибку ?
Я начинаю изучать все это.
И в данном объяснении на 1 пункте сразу стоп. Какую таблицу пользователей. Где она. Как открыть. Короче далее п.1 и вместе с п.1 объяснение бесполезно, увы
Бесполезная статья, извините, Вадим. Бездарно объясняете.
согласен
И где искать mysql ? Пол дня дрочу open cart