Ошибки

MySQL 1045: Access denied for user (using password: YES) — что делать

Ошибка 1045 значит, что база не пустила пользователя: пароль не подошёл, такого пользователя нет или он заведён для другого адреса. Ниже — как найти, что именно, и исправить.

Обновлено 10.10.2026≈ 5 мин чтения
Содержание 10

Как выглядит ошибка

ERROR 1045 (28000): Access denied for user 'ivan'@'localhost' (using password: YES)
  • 'ivan' — имя, под которым пытались войти.
  • 'localhost' — откуда пришло подключение, как его видит сервер базы. localhost — с того же сервера.
  • using password: YES — пароль был передан, но вход не удался.
  • using password: NO — пароль не передан вовсе: в команде нет ключа -p или в настройках сайта пароль пустой.

Сообщение одинаковое и когда пароль неверный, и когда такого пользователя нет: сервер специально не говорит, что из этого случилось. Поэтому проверьте и то и другое.

Шаг 1. Проверьте, как вводите пароль

Для входа под своим пользователем наберите команду с ключом -p:

mysql -u ivan -p

Программа спросит Enter password: — введите пароль пользователя базы и нажмите Enter. Символы при вводе не видны. Проверьте раскладку клавиатуры и Caps Lock. Если пароль копируете, следите, чтобы не захватить лишний пробел.

Если после -p через пробел стоит слово, это не пароль, а имя базы: команда mysql -u ivan -p base спросит пароль и откроет базу base.

Шаг 2. Посмотрите, какие пользователи есть

На своём VPS войдите в базу с правами администратора:

sudo mysql

Если система спросит пароль, введите пароль своего пользователя на сервере, а не пароль базы. Символы при вводе не видны — так и должно быть, просто наберите пароль и нажмите Enter. Строка ввода сменится на mysql> у MySQL или на MariaDB [(none)]> у MariaDB: теперь можно вводить команды для базы. Каждая команда заканчивается точкой с запятой. Выйти обратно — команда exit.

и выполните:

SELECT user, host FROM mysql.user;

Найдите в списке своего пользователя. В колонке host — откуда ему можно входить: localhost — только с этого же сервера, % — с любого адреса, IP-адрес — только с него. Пользователь 'ivan'@'localhost' и пользователь с тем же именем и другим адресом — это две разные учётные записи со своими паролями.

Если вашего пользователя в списке нет или у него другой адрес, переходите к шагу 4.

Шаг 3. Задайте пароль заново

В той же базе выполните команду — подставьте имя и адрес из списка и свой новый пароль в одинарных кавычках:

ALTER USER 'ivan'@'localhost' IDENTIFIED BY 'новый-пароль';

Ответ Query OK значит, что пароль сменён. Если в ответ пришла ошибка 1819 — пароль слишком простой, разбор на отдельной странице. Выйдите командой exit и проверьте вход: mysql -u ivan -p.

Шаг 4. Если пользователя нет — заведите его

Создайте пользователя и дайте ему права на базу сайта (вместо base — имя своей базы):

CREATE USER 'ivan'@'localhost' IDENTIFIED BY 'новый-пароль';
GRANT ALL PRIVILEGES ON base.* TO 'ivan'@'localhost';

Такой пользователь может работать только со своей базой и только с этого же сервера — для сайта на том же VPS этого достаточно.

Шаг 5. Поправьте настройки сайта

Если ошибку показывает сайт, он берёт имя пользователя и пароль из своего файла настроек. У WordPress это wp-config.php в папке сайта. Откройте его (как редактировать файл — в разделе про nano):

sudo nano /var/www/example.ru/wp-config.php

Вместо /var/www/example.ru подставьте папку своего сайта. Проверьте строки DB_NAME, DB_USER, DB_PASSWORD и DB_HOST: значения в кавычках должны совпадать с именем базы, пользователем и паролем. Сохраните файл и обновите страницу сайта.

Если сайт на обычном хостинге

На обычном хостинге команды sudo нет: базы, пользователей и пароли там создают и меняют в панели хостинга, в разделе про базы данных. После смены пароля впишите его в настройки сайта — у WordPress в wp-config.php, — иначе сайт покажет ту же ошибку.

Если в сообщении root

Если в ошибке стоит 'root'@'localhost', а слов using password нет — это ошибка 1698, разбор на отдельной странице. Пользователь root в MySQL и MariaDB из пакетов Ubuntu входит командой sudo mysql без пароля базы.

Тексты ошибок и настройки сверены с исходным кодом MySQL 8.0.46 и MariaDB 10.11.14 — эти версии ставятся из пакетов Ubuntu 24.04. В других версиях строки могут немного отличаться.

Источники

Сверено 10 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 10.10.2026