Ошибки

Ошибки MySQL и MariaDB: как найти причину по номеру

MySQL и MariaDB пишут номер ошибки и короткое объяснение. Найдите номер или слова из своего сообщения в таблице — для каждой ошибки есть страница с исправлением по шагам.

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

Найдите свою ошибку

Посмотрите на номер после слова ERROR или на английский текст и найдите его в левой колонке.

Номер и слова в сообщенииЧто случилосьЧто делать
1045 Access denied for user … (using password: YES)Пароль не подошёл, такого пользователя нет или он заведён для другого адресаРазбор
1698 Access denied for user 'root'@'localhost'В Ubuntu root входит в базу без пароля, но только через sudoРазбор
2002 Can't connect to local … server through socketСлужба базы не запущена или программа ищет её не тамРазбор
2003 Can't connect to … server onПодключиться к базе по сети не удалосьРазбор
1049 Unknown databaseБазы с таким именем нетРазбор
1044 Access denied for user … to databaseУ пользователя нет прав на эту базу или в имени базы опечаткаРазбор
1146 Table … doesn't existВ базе нет такой таблицыРазбор
1273 Unknown collation: 'utf8mb4_0900_ai_ci'Дамп из MySQL 8 загружают в MariaDBРазбор
1227 you need (at least one of) the SUPERВ дампе указан пользователь со старого сервераРазбор
1819 Your password does not satisfy the current policy requirementsПароль не проходит проверку сложностиРазбор
1153 или 2020 Got a packet bigger than 'max_allowed_packet'Команда или строка таблицы больше допустимого размераРазбор
mysqldump: … PROCESS privilege или when using LOCK TABLESПользователю не хватает прав на выгрузку базыРазбор

Как читать сообщение

Программа mysql выводит ошибку одной строкой:

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

Если вы загружаете файл командой вида mysql -u ivan -p base < base.sql, в сообщении будет ещё номер строки файла, на которой загрузка остановилась:

ERROR 1273 (HY000) at line 25: Unknown collation: 'utf8mb4_0900_ai_ci'

Сайты и программы на PHP показывают тот же номер и тот же английский текст, но внутри своего сообщения. Найдите в нём число из четырёх цифр и слова после него.

MySQL или MariaDB: как узнать

Номера ошибок из этой таблицы у MySQL и MariaDB общие, а вот названия служб и некоторые команды отличаются. Чтобы узнать, что стоит на сервере, выполните:

mysql --version

Если в ответе есть слово MariaDB — у вас MariaDB. Если его нет — MySQL. Команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.

Как войти в базу на своём сервере

sudo mysql

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

Так входят на свой VPS, если MySQL или MariaDB поставлены из пакетов Ubuntu и вход для root вы не меняли. Если в ответ пришла ошибка 1698 или 1045, разбор — на страницах 1698 и 1045.

Работает ли служба базы

Для MySQL:

sudo systemctl status mysql

Для MariaDB:

sudo systemctl status mariadb

Строка Active: active (running) значит, что база работает. Слова inactive (dead) или failed значат, что она остановлена или упала. Чтобы вернуться к вводу команд, нажмите клавишу Q. Что делать, если служба не работает, — на странице ошибки 2002.

Где журнал ошибок

Если база не запускается или ведёт себя странно, причину она пишет в журнал. MySQL из пакетов Ubuntu пишет его в файл — последние 50 строк покажет команда:

sudo tail -n 50 /var/log/mysql/error.log

MariaDB из пакетов Ubuntu пишет в системный журнал — последние 50 строк:

sudo journalctl -u mariadb -n 50 --no-pager

Ищите строки со словом [ERROR]: в них сказано, что пошло не так.

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

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

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

Источники

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

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

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