Ошибка: Access denied for user ‘root’@’localhost’ (Using password: YES и NO)

При работе с системой MySQL могут возникнуть самые разные ошибки, и на этапе освоения программы разобраться с ними может быть сложно. Одна из наиболее распространенных проблем — ошибка 1045, которая сопровождается сообщением Access denied for user ‘root’@’localhost’ (Using password: YES и NO). Сегодня я расскажу, как ее исправить.

Понять суть проблемы можно, переведя сообщение об ошибке на русский язык. Означает оно, что пользователю с именем root на машине localhost запрещен доступ к БД при использовании пароля или без него.

Окно Connection Error

Причины ошибки Access denied for user ‘root’@’localhost’

Чтобы свободно получить доступ в MySQL, должно совпасть три параметра, описывающих пользователя базы данных — имя, название машины и пароль. Если есть какие-то несовпадения, доступ будет запрещен. Самая простая причина проблемы — неправильный ввод пароля. Кроме этого, вызывать ошибку может неправильный синтаксис.

В системе MySQL нет простой зависимости имя пользователя – пароль, название хоста играет важную роль в получении доступа к БД. Оно может иметь вид IP-адреса, доменного имени, ключевого слова (например, localhost) или символа, объединяющего несколько машин в группу (например, % — любой хост, кроме локального).

Ошибка Access denied

Наиболее распространенные ошибки при обращении к БД:

  1. При присвоении прав новому пользователю не был указан адрес машины, с которой он может подключаться. В таком случае ему автоматически будет разрешено пользоваться БД с любого хоста, кроме локального, и при попытке подключения с localhost возникнет ошибка доступа.
  2. Неправильно расставленные кавычки. Если при создании пользователя написать ‘username@localhost’, это будет значить, что username@localhost может подключаться с любой машины, кроме локальной, а не что username может подключаться с компьютера localhost. Логин пользователя и имя машины должны иметь свою пару кавычек.
  3. Использование пароля при его отсутствии в базе данных.

В зависимости от того, при каком способе подключения к БД возникает ошибка Access denied for user ‘root’@’localhost’ (Using password: YES или NO), используются разные методы решения проблемы.

Как исправить ошибку 1045 в MySQL

Если ошибка Access denied for user появляется с указанием Using password: YES, проблема заключается в неправильном вводе пароля. Проверить это можно, открыв таблицу mysql.user, в которой хранятся данные обо всех пользователях.

Таблица USE Mysql

Порядок действий таков:

  1. Откройте таблицу пользователей.
  2. Проверьте, существует ли пользователь root с хостом localhost. Если он есть, смотрите на поле «password». Если там пусто, зайти в базу можно без ввода пароля. Если там что-то есть, значит, вы вводите неправильный пароль.
  3. Смените пароль командой SET PASSWORD.
  4. Если пользователя 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. Тимур

    я должен руками текст набивать? почему нельзя скопировать текст?1

    Ответить
    1. Константин

      Где скопировать это можно никто не знает? я хз как половину символов написать, опять гуглить чтоль?

      Ответить
  2. Сахарок

    Эту ошибку HY000/1045 Access denied for user «имя пользователя» @ «localhost» using password: YES, помогло прописать следующее вместо имени пользователя вписал root и стер пароль .
    Был запрос — mysqli_connect(HOST, USER, PASS, DB) а стал — mysqli_connect(HOST, root, , DB)

    Ответить
  3. l2 custom servers

    This blog was… how do you say it? Relevant!!
    Finally I have found something that helped
    me. Kudos!

    Ответить
  4. Grizli

    как открыть таблицу mysql.user ??? Вы входите в MySql и после открываете. А входить не получается и следовательно таблицу не открывает. Да и еще: Как войти в режим
    —skip-grant-tables — Вы же ничего не написали. Как команды написать и как войти в этот режим???

    Ответить
  5. VAD

    «Откройте таблицу пользователей.»Нет никаких таблиц, в доступе отказано

    Ответить
  6. Greaps

    Спасибо большое очень сильно помогли

    Ответить
  7. Алекс

    YES, помогло прописать следующее вместо имени пользователя вписал root и стер пароль .

    Ответить
  8. Юрий

    Добрый день! А если эта ошибка Access denied for user ‘root’@’localhost’ (using password: NO) появилась когда свою базу SQL забросил на хост и поддержка хоста молчит, но у меня есть доступ только к phpmyadmin, где я вижу свою базу. Что мне делать чтобы исправить эту ошибку ?

    Ответить
  9. Vlad

    Я начинаю изучать все это.
    И в данном объяснении на 1 пункте сразу стоп. Какую таблицу пользователей. Где она. Как открыть. Короче далее п.1 и вместе с п.1 объяснение бесполезно, увы

    Ответить
  10. Эдуард

    Бесполезная статья, извините, Вадим. Бездарно объясняете.

    Ответить
    1. Аноним

      согласен

      Ответить
  11. Виктор

    И где искать mysql ? Пол дня дрочу open cart

    Ответить