Ошибки

MySQL 1044: Access denied for user to database — нет прав на базу

Ошибка 1044 значит, что пароль подошёл, но у пользователя нет прав на эту базу. Или права не выдали, или в имени базы опечатка. Проверьте права и имя.

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

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

ERROR 1044 (42000): Access denied for user 'ivan'@'localhost' to database 'base'

Пользователь и пароль верные — иначе была бы ошибка 1045. Но на базу из кавычек у пользователя прав нет. Сервер проверяет права раньше, чем наличие базы, поэтому ту же ошибку вы получите, если базы с таким именем нет вовсе.

Если ошибка пришла от mysqldump и в конце стоит when using LOCK TABLES, разбор — на странице ошибок mysqldump.

Шаг 1. Проверьте имя базы

Сравните имя из ошибки с именем базы в панели хостинга или в списке баз на сервере (команда SHOW DATABASES; под администратором). Если в имени опечатка, исправьте её в настройках программы — у WordPress в wp-config.php, строка DB_NAME.

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

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

sudo mysql

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

и выполните, подставив имя и адрес пользователя из ошибки:

SHOW GRANTS FOR 'ivan'@'localhost';

Строка с GRANT USAGE ON . значит только право войти — прав ни на одну базу в ней нет. Ищите строку, где после ON стоит имя вашей базы. Если такой строки нет, права не выданы.

Шаг 3. Выдайте права

GRANT ALL PRIVILEGES ON base.* TO 'ivan'@'localhost';

Вместо base — имя базы, вместо ivan и localhost — пользователь и адрес из ошибки. base.* значит «все таблицы базы base»: права только на неё, к другим базам пользователь доступа не получит. Выйдите командой exit и повторите то, что вызвало ошибку.

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

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

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

Источники

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

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

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