MySQL 1044: Access denied for user to database — нет прав на базу
Ошибка 1044 значит, что пароль подошёл, но у пользователя нет прав на эту базу. Или права не выдали, или в имени базы опечатка. Проверьте права и имя.
Содержание 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. В других версиях строки могут немного отличаться.
Источники
- Исходный код MySQL 8.0.46: messages_to_clients.txt — тексты ошибок сервера MySQL.
- Исходный код MariaDB 10.11.14: errmsg-utf8.txt — тексты ошибок сервера MariaDB.
- Справочник ошибок сервера MySQL 8.0 — номера, коды SQLSTATE и тексты.
- Исходный код MySQL 8.0.46: sql_db.cc — права проверяются раньше, чем наличие базы.
- Документация MySQL 8.0: GRANT — выдача прав.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026