Герои, поддержавшие проект3 ♥
  • Татьяна20.08.262 000 ₽
    поддержал проект ♥
  • Аноним13.08.2650 ₽
    Спасибо! Развития проекту!
  • Аноним20.07.26100 ₽
    поддержал проект ♥
Здесь навсегда остаются все, кто поддержал проект донатом — со своим сообщением или без.

Сайт не подключается к MySQL после переноса: как исправить Access denied и ошибку соединения

Реклама
Середина статьи970×250 / адаптивный≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу
ноутбук с кодом и графиками данных на экране
Фото: Unsplash

После переноса сайта на новый shared-хостинг типичная картина — файлы загрузились, домен открывается, но вместо сайта видно «Error establishing a database connection», Access denied for user, «Не удалось подключиться к базе данных» или пустую страницу. Почти всегда причина в одном из четырёх параметров: имя базы, пользователь, пароль или хост MySQL.

Не нужно сразу переимпортировать базу и тем более удалять старую. Сначала сверяем реквизиты подключения и убеждаемся, что пользователь действительно привязан к базе с нужными правами.

Реклама
Верхний баннер после заголовка970×250 / адаптивный≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Коротко: что сделать сразу

  • Сделайте копию config.php/.env/wp-config.php и экспорт базы перед правками.
  • В панели хостинга откройте раздел MySQL/Базы данных и выпишите точные имя базы, пользователя и хост.
  • Не путайте пароль от панели хостинга, FTP и MySQL — это разные учётные данные.
  • Проверьте, что пользователь добавлен к нужной базе и ему выданы необходимые права.
  • Меняйте по одному параметру в конфиге и после каждого шага проверяйте сайт.
Нужна помощь? Если не хотите рисковать настройками или важными данными, оставьте заявку — мастер CompMaster подключится удалённо, проведёт диагностику и подскажет безопасный вариант решения.

По тексту ошибки можно сразу сузить поиск

Access denied for user обычно означает: сервер MySQL найден, но не принял пользователя/пароль или пользователь не имеет доступа к этой базе.

Реклама
Мобильный баннер в теле статьи320×100≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Unknown database — указанного имени базы на сервере нет. Часто после переноса хостер добавляет к имени префикс аккаунта.

Реклама
Баннер после обложки970×250 / адаптивный≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Connection refused или тайм-аут — неверный DB_HOST, MySQL не слушает этот адрес или хостинг запрещает удалённое подключение. Для сайта на том же shared-хостинге обычно нужен внутренний адрес, который показывает панель.

Реклама
Горизонтальная растяжка в статье728×90≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Table does not exist — подключение уже работает, но импортирована не та база, не все таблицы или приложение использует другой префикс таблиц.

Реклама
Вертикальный блок в статье300×600≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Где найти правильные параметры в панели хостинга

В cPanel ищите MySQL Databases, в ISPmanager — «Базы данных», у других хостеров — «MySQL», «БД» или «Управление базами». Названия отличаются, но вам нужны четыре вещи: имя базы, имя пользователя, сервер/хост и назначенные права.

Обратите внимание на префиксы. Вы могли создать базу site, а фактическое имя будет account_site. То же касается пользователя. В конфигурации сайта нужно фактическое имя, а не короткая подпись из старого хостинга.

Реклама
После статьи970×250 / адаптивный≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу
экран ноутбука со строками программного кода
Фото: Unsplash

Проверьте связь «пользователь → база → права»

Создать пользователя недостаточно. Во многих панелях его нужно отдельно добавить к базе и назначить привилегии. Если этого не сделать, логин существует, пароль правильный, но MySQL всё равно отвечает Access denied.

Реклама
Видео / медиа-блок в статье640×360 / видео 16:9≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Для обычной CMS обычно нужны права чтения и изменения таблиц; при установке и обновлении — ещё создание/изменение структуры. Не выдавайте глобальные права на все базы аккаунта, если достаточно доступа к одной конкретной базе.

Реклама
Нативный прямоугольник в статье300×250≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Как безопасно править config.php, .env или wp-config.php

Перед изменением скачайте текущий конфиг. В WordPress параметры находятся в wp-config.php, в Laravel и многих современных приложениях — в .env, в самописных сайтах — в config.php или похожем файле.

Реклама
После вступления970×250 / адаптивный≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Меняйте только DB_NAME, DB_USER, DB_PASSWORD и DB_HOST, если именно они отличаются. Не публикуйте эти значения в тикете, чате или скриншоте без необходимости. Пароль к базе хранится в конфиге потому, что приложению он нужен, но сам конфиг не должен отдаваться браузером как текст.

Реклама
Перед блоком «Читайте также»970×250 / адаптивный≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

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

Убедитесь, что база действительно импортирована

Откройте phpMyAdmin из панели и выберите нужную базу. Вы должны видеть таблицы сайта. Если база пустая, импортируйте SQL-дамп через штатный раздел «Импорт». Перед повторным импортом не удаляйте рабочие таблицы наугад: сначала сделайте экспорт текущего состояния.

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

открытый жёсткий диск с видимой магнитной пластиной
Фото: Unsplash

DB_HOST: localhost подходит не всегда

На одном хостинге MySQL доступен как localhost, на другом — отдельным именем сервера. После переезда старое значение может стать неправильным. Точное значение смотрите в панели или в инструкции именно вашего хостера.

Не открывайте удалённый доступ к MySQL «для всех IP», если сайт и база находятся на одном сервере. Это лишний риск. Если удалённое подключение действительно нужно, ограничивайте доступ конкретным IP и используйте защищённый канал согласно правилам хостинга.

DNS после переноса: почему сайт может вести себя по-разному

Если домен только что переключили на новый хостинг, часть посетителей может ещё попадать на старый сервер, а вы — уже на новый. Перед изменением DNS всегда сохраняйте текущие записи, особенно почтовые MX/SPF/DKIM/DMARC.

Распространение DNS может занимать до 24–48 часов из-за TTL и кэша у провайдеров. Поэтому в переходный период один пользователь может видеть исправленный сайт, а другой — старую ошибку подключения к базе.

Как понять, что проблема решена

Сайт открывает главную и несколько внутренних страниц, вход в административную часть проходит, операции чтения и записи работают: например, сохраняется тестовая настройка или черновик. В журнале PHP/MySQL больше нет Access denied, Unknown database или ошибок соединения.

После успешной проверки удалите временные дампы из public_html и убедитесь, что резервные SQL-файлы нельзя скачать по прямой ссылке.

Когда лучше остановиться и не экспериментировать

Если на старом и новом хостинге уже появились разные свежие данные — заказы, заявки, комментарии — не делайте новый импорт поверх базы. Сначала нужно выбрать источник истины и аккуратно объединить изменения.

Перед правкой config.php, .env, базы и DNS обязательно делайте копию. Не отключайте SSL-проверки, не ставьте 777 и не храните пароли в открытых txt-файлах. Если неясно, какая база актуальная, остановитесь до выяснения.

Частые вопросы

Access denied означает неправильный пароль?

Это одна из причин. Также пользователь может быть не привязан к базе, иметь недостаточные права или указываться с неправильным именем/префиксом.

Можно оставить DB_HOST=localhost?

Только если ваш хостер действительно использует localhost. После переноса значение нужно сверить с новой панелью.

Нужно ли импортировать базу заново?

Нет, если таблицы уже есть. Сначала проверьте параметры подключения. Повторный импорт может создать дубли или перезаписать свежие данные.

Почему у меня сайт работает, а у клиента ещё нет?

После смены DNS разные сети могут некоторое время видеть разные IP из-за кэша. Обычно ситуация выравнивается по мере истечения TTL, иногда до 24–48 часов.

Читайте также:

Вывод

После переноса сайта ошибка MySQL почти всегда диагностируется без переустановки CMS: сверяем имя базы, пользователя, пароль, DB_HOST, привязку прав и наличие таблиц. Если сайт рабочий и данные меняются, CompMaster может провести перенос и проверку подключения без риска перезаписать актуальную базу.