Як виправити помилку 1045 в MySQL

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

Зрозуміти суть проблеми можна, перевівши повідомлення про помилку на російську мову. Чи означає воно, що користувачу з ім’ям root на машині localhost заборонений доступ до БД при використанні пароля або без нього.

Помилка 1 045 виникає через заборону доступу до бази даних

Причини помилки Access denied for user ‘root’ @ ‘localhost’

Щоб вільно отримати доступ в MySQL, має збігтися три параметра, що описують користувача бази даних – ім’я, назва машини і пароль. Якщо є якісь розбіжності, доступ буде заборонений. Найпростіша причина проблеми – неправильне введення пароля. Крім цього, викликати помилку може неправильний синтаксис.

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

Помилка має ключ (Using password: NO) при вході в БД через браузер

Найбільш поширені помилки при зверненні до БД:

  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 ‘root’ @ ‘localhost’ (Using password: YES і NO) з’являється із зазначенням Using password: YES, проблема полягає в неправильному введенні пароля. Перевірити це можна, відкривши таблицю mysql.user, в якій зберігаються дані про всіх користувачів.

У таблиці mysql.user зберігаються дані для входу користувачів

Порядок дій такий:

  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) виникає при невідповідності пароля та імені користувача і легко виправляється заміною даних для входу.

Ссылка на основную публикацию