Tooprogram.ru

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Ошибка соединения с базой данных

Предложение от 8host.com

Как устранить ошибку установки соединения с базой данных WordPress

WordPress – одна из популярнейших открытых систем управления контентом. Изначально платформа WordPress разрабатывалась для блогов, однако со временем она стала более гибкой и производительной, и теперь подходит для обслуживания практически любого сайта. WordPress разрабатывается почти 15 лет; сегодня это очень надёжная и ошибкоустойчивая система, однако и в ней иногда случаются сбои и ошибки.

Ошибка установки соединения с базой данных (Error Establishing Database Connection) – одна из самых распространённых ошибок WordPress. Обычно её вызывает:

  • Сбой БД (чаще всего из-за нехватки памяти).
  • Неправильные учётные данные БД в настройках WordPress.
  • Нарушение таблиц базы данных WordPress.

В этом руководстве вы узнаете, как определить причину ошибки установки соединения с БД и исправить её.

Требования

  • Машина с предустановленной платформой WordPress.
  • Доступ к sudo.
  • База данных должна быть запущена на одной машине с WordPress.
  • Учётные данные БД: имя пользователя, пароль и имя базы данных для WordPress. Эта информация была создана во время начальной настройки WordPress.

1: Проверка памяти сервера

Для начала нужно убедиться, что MySQL работает, и что на сервере достаточно памяти для обработки данных WordPress.

Подключитесь к серверу по SSH:

Примечание: Если вы уверены, что правильно указали учётные данные, но у вас по-прежнему возникают проблемы при входе в систему, возможно, на сервере не хватает памяти или он не справляется с большой нагрузкой. Это случается из-за неожиданного роста трафика, и этим можно объяснить ошибку WordPress. Попробуйте перезагрузить сервер и подключиться снова.

Подключившись к серверу, убедитесь, что MySQL работает:

sudo netstat -plt

Команда netstat выводит информацию о сетевой системе сервера. Приведённая выше команда выведет имена программ, которые прослушивают соединения на сокете tcp (флаги –p, –l и –t соответственно). В выводе найдите mysqld:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:mysql *:* LISTEN 1958/mysqld
tcp 0 0 *:ssh *:* LISTEN 2205/sshd
tcp 0 0 localhost:smtp *:* LISTEN 2361/master
tcp6 0 0 [::]:http [::]:* LISTEN 16091/apache2
tcp6 0 0 [::]:ssh [::]:* LISTEN 2205/sshd
tcp6 0 0 ip6-localhost:smtp [::]:* LISTEN 2361/master

Если такая программа есть в выводе команды, значит, сервер MySQL запущен и прослушивает соединения. Если вы не нашли MySQL в списке, попробуйте запустить сервер вручную. Обычно для этого используется команда:

sudo systemctl start mysql

Примечание: В некоторых дистрибутивах Linux (например, в CentOS) используется mysqld вместо mysql.

Сервер MySQL должен запуститься. Чтобы убедиться в этом, снова запустите netstat и найдите в выводе строку mysqld.

Для корректной работы MySQL и WordPress нужно довольно много памяти. Сервер MySQL может прекратить работу из-за нехватки памяти. Чтобы убедиться, что ошибка произошла по этой причине, проверьте логи ошибок MySQL.

zgrep -a «allocate memory» /var/log/mysql/error.log*

Команда zgrep выполнит поиск по логам, включая более старые логи в архиве с расширением .tar.gz. Команда будет искать в логах error.log* из каталога /var/log/mysql/ все строки с пометкой allocate memory.

2017-04-11T17:38:22.604644Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool

Если вы видите на экране такую строку (или несколько таких строк), значит, причина ошибки подключения к БД в нехватке памяти для работы MySQL. Возможно, это произошло из-за резкого роста трафика. Если в выводе много таких строк, значит, сервер сталкивается с нехваткой памяти регулярно. В таком случае рекомендуется переместить ресурс на сервер с большим объёмом памяти. Большинство провайдеров облачного хостинга позволяют просто обновить свой сервер с минимальным временем простоя.

Если команда zgrep не вернула ничего, памяти на сервер достаточно для обработки данных WordPress и MySQL. Если ошибка установки соединения с БД не исчезла, нужно проверить настройки WordPress и убедиться, что в них указаны правильные данные о MySQL.

2: Проверка учётных данных MySQL

Если вы недавно переместили установку WordPress на новый сервер (или сменили хостинг-провайдера), вам нужно обновить информацию о БД в настройках WordPress. Они хранятся в PHP-файле wp-config.php.

Найдите этот файл:

sudo find / -name «wp-config.php»

Команда выполнит поиск в root-каталоге и найдёт все файлы wp-config.php. Если такой файл существует, команда выведет путь к нему:

Откройте его в текстовом редакторе:

sudo nano /var/www/html/wp-config.php

Этот файл содержит много переменных и комментариев к ним. В начале файла можно найти строки, отвечающие за настройки БД:

/** The name of the database for WordPress */
define(‘DB_NAME’, ‘database_name’);
/** MySQL database username */
define(‘DB_USER’, ‘database_username’);
/** MySQL database password */
define(‘DB_PASSWORD’, ‘database_password’);

Убедитесь, что эти три переменные содержат правильные данные. Если здесь указаны неправильные значения, откорректируйте их, а затем сохраните и закройте файл (CTRL-O, CTRL-X). Даже если теперь в файле указана валидная информация о БД, стоит попробовать подключиться к базе данных из командной строки, чтобы убедиться, что ошибка исчезла. Скопируйте из конфигурационного файла и вставьте данные в следующую команду:

mysqlshow -u database_username -p

Команда запросит пароль. Вставьте пароль и нажмите Enter. Если вы при этом получили ошибку Access denied, значит, вы указали неправильное имя пользователя или пароль.

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

Убедитесь, что в этом списке есть БД, указанная в конфигурации WordPress. Перезапустите сайт и убедитесь, что ошибка подключения к БД исчезла.

Если исправить ошибку не удалось, попробуйте восстановить БД.

3: Восстановление базы данных WordPress

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

Читать еще:  Как исправить ошибку 10

WordPress предоставляет встроенную утилиту для восстановления БД. По умолчанию она отключена (поскольку к ней нельзя ограничить доступ, а значит, она представляет угрозу безопасности сервера).

sudo nano /var/www/html/wp-config.php

Вставьте в файл такую строку:

Эта строка включает функцию восстановления БД.

Сохраните и закройте файл.

Откройте браузер и перейдите по следующему адресу:

Примечание: Вместо www.example.com укажите свой домен или IP.

На экране появится страница восстановления базы данных:

WordPress can automatically look for some common database problems and repair them. Repairing can take a while, so please be patient. […]

Нажмите кнопку Repair Database. На экране появится страница с результатами, где вы сможете отслеживать проверку и исправления в реальном времени.

После этого снова откройте файл wp-config.php и удалите из него строку, которая включает поддержку утилиты восстановления БД.

Проверьте работу сайта. Если WordPress обнаружил в БД ошибки, которые не удалось исправить, попробуйте восстановить БД из резервной копии.

Если утилита WordPress не обнаружила проблем с базой данных, значит, БД также не является источником ошибки соединения. Возможно, это какая-то временная ошибка.

В большинстве случаев ошибку установки соединения можно устранить при помощи предложенных выше методов. Однако иногда источником ошибки являются атаки или нехватка серверных ресурсов.

Часто источником повышенного трафика (а также низкой производительности и ошибок) являются brute-force атаки. Чтобы узнать, как смягчить атаки WordPress, читайте статью Защита WordPress от взлома XML-RPC в Ubuntu 14.04.

Чтобы сэкономить ресурсы сервера, настройте кэширование WordPress. Полезные инструкции вы найдёте в руководстве Настройка кэширования Redis для ускорения WordPress.

Ошибка установки соединения с базой данных WordPress

Ошибки всегда неприятны, особенно, когда неожиданно появляются на только что работающем Вордпресс-сайте. К счастью, ошибка установки соединения с базой данных совсем нефатальна и обычно лечится за несколько минут.

Кстати, эта статья появилась в результате небольшого SEO-эксперимента: я случайно собирал ключи для страницы с настройкой рекламы и нашел длинный незанятый SEO-запрос, а именно: «Ошибка установки соединения с базой данных WordPress».

В чём именно заключается мой SEO-эксперимент с этой статьей смотрите в конце текста

А сейчас — за дело! Итак, у вас выскочил белый экран и на нем ошибка установки соединения с базой данных.


Важно знать, что любой сайт на WordPress состоит из двух важнейших элементов: программных файлов и базы данных.

Программные файлы доступны на хостинг по FTP-соединению (что такое FTP и как через него зайти на сайт). А база данных использует специальное место на хостинге, доступ в которое осуществляется через специальный сервис, обычно это PhpMyAdmin.

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

Для этого они получают к ней доступ, используя логин и пароль, заданный при первой настройке сайта на WordPress и хранящийся в файле wp-config.php в корневой (главной) папке сайта.

Выглядит это примерно вот так:

Поэтому если у вас возникает «Ошибка установки соединения с базой данных WordPress» или по английски: «Error establishing a database connection», то проблема заключается в том, что программный файл банально не может получить доступ к базе данных. По любой причине!

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

И следовательно, чтобы решить проблему ошибки установки соединения с базой данных WordPress, нужно проверить следующие моменты:

  1. Убедиться, что база данных вообще существует. Для этого нужно зайти в панель управления хостингом (доступ выдает хостер при покупке его услуг — что такое хостинг), найти в меню панели ссылку на базы данных, обычно она так и называется «Базы данных», открыть и убедиться что база на хостинге существует.
  2. Затем нужно зайти в саму базу и убедиться, что в ней есть информация (таблицы и записи), вдруг ее кто-то затер и на хостинге просто висит пустая база данных? Для этого нужно воспользоваться в панели хостинга ссылкой на сервис PhpMyAdmin и ввести логин и пароль от базы данных. Напомню — логин и пароль есть в файле wp-config. В самой базе должны быть какие-то таблицы, она должна весить определенный объем в Кб или Мб, то есть база должна быть непустой, занимать определенное место.
  3. Если вы вводите логин и пароль и при этом доступ не открывается, значит скорее всего вы обнаружили корень проблемы возникающей ошибки — неправильное имя пользователя или (что скорее всего) неверный пароль. Возможно, вы его сменили для своей базы, а в файлах поменять забыли. Возвращайтесь на первый шаг, заходите в настройки базы данных, меняйте пароль у пользователя и после этого пропишите новый пароль в файле wp-config.php

Таким образом, вам нужно убедиться в том, что логин (имя пользователя) и пароль от базы данных полностью соответствуют тому, что прописано у вас в конфигурационном файле wp-config.

Пароль от базы на хостинге = Паролю от базы в wp-config.php

Ну и в том, что база данных вообще есть, и вы ее случайно не стерли.

Кстати, если даже это произошло и вы обнаружили, что база данных удалена — не спешите паниковать, просто напишите хостеру просьбу о восстановлении бекапа база данных на заведомо рабочую дату и всё!

Любой уважающий себя хостер хранит бекап баз данных своих клиентов как минимум за пару недель. Если ваш хостер этого не делает — повод его сменить. Вот тут есть хостеры, которых я рекомендую и сам использую в работе.

Вот и всё.
Ошибка несложная, и статья поэтому небольшая.
Если знаете свои способы решения данной ошибки установки соединения с базой сайтов на Вордпресс, пишите в комментариях. А если получилось решить задачу моими способами — ставьте лайки и звезды

Читать еще:  Ошибка xc 0000005

А сейчас как и обещал немного о SEO-эксперименте, который я решил поставить при написании этой статьи. Напомню, я собирал ключи для других постов на блоге и нашел длинный незанятый ключ: «Ошибка установки соединения с базой данных WordPress«.

Его показатель KEI был небольшим, меньше 25 (что такое формула KEI), но при этом было много других сайтов с подобными запросами, только в сокращенной или искаженной форме:

  • Ошибка соединения с базой данных wordpress
  • Исправляем ошибку установки соединения с базой данных
  • Ошибка при установке соединения с базой данных и т.п.

Посмотрите — их нереально много!

Но с прямым вхождением ключа «Ошибка установки соединения с базой данных WordPress» в ТОП-10 Яндекса только 3 сайта.

И я решил выяснить: а если я оптимизирую статью под этот длинный запрос — он «победит» всех конкурентов с этим же запросом, но в другой форме? То есть насколько точная форма запроса помогает продвигаться в поиске.

Или можно особенно не заморачиваться над строгим соответствием в метатегах, заголовках, тексте статьи (читать как вписать ключи, чтобы выйти в ТОП) и важнее все же другие SEO-факторы.

Эксперимент будет продолжаться как минимум пару месяцев, ведь нужно будет отследить динамику роста данной статьи по конкретному запросу.

Кстати, отслеживаю позиции в поиске я вот тут и причем — совершенно бесплатно. Там есть секрет как это делать именно бесплатно, ведь сам по себе сервис платный.

Так что подписывайтесь на обновления блога, в одной из последующих статей я обязательно расскажу о его результатах.

Результаты готовы и очень даже хорошие. Читайте вот тут — внизу есть этот пример со скринами и выводами, все получилось отлично!

Полезный совет: Нажатие клавиш «WIN + D» позволяет быстро скрыть текущие окна и перейти к рабочему столу Windows.

Исправляем ошибку установки соединения с базой данных

Если вы занимаетесь разработкой своего сайта сначала на локальном компьютере, то при переносе на хостинг практически всегда столкнётесь с ошибкой установки соединения с базой данных, в английской версии WordPress она звучит так: Error establishing a database connection.

Но совсем необязательно, что это будет из-за переноса сайта, могут быть изменены настройки подключения к базе данных: удалён пользователь, под которым вы подключались, либо же изменён пароль или MySQL вынесен на отдельный сервер.

Также появление этой ошибки может означать недоступность сервера базы данных на вашем хостинге. В любом случае, проблема есть и её нужно решать.

Проявляется ли проблема в wp-admin

Первым делом стоит убедиться, что данное сообщение об ошибке выводится и на сайте, и в административной панели. Для этого попробуйте зайти в админку сайта (wp-admin).

Если в административной панели выводится абсолютно аналогичное сообщение об ошибке установки соединения с базой данных — можете смело переходить к следующему шагу этой инструкции.

Если же вы получили сообщение «Одна или несколько таблиц базы данных недоступны», тогда нужно будет выполнить автоматическое исправление таблиц механизмами WordPress.

Для этого нужно выполнить следующие шаги:

    Открыть файл wp-config.php и добавить в него следующую строку:

Если после этого шага сайт стал доступен и сообщение об ошибке больше не появляется — можете смело завершить чтение статьи и радоваться, что обошлись лишь испугом.

В ином случае рекомендую продолжить чтение заметки.

Проверка файла wp-config.php

Файл wp-config.php один из самых важных файлов в WordPress — именно в нём прописаны все параметры для нормальной работы вашего сайта. Все настройки для подключения к базе данных тоже находятся именно в этом файле.

Если вдруг вы, или кто-то другой (например, системный администратор), изменили логин или пароль для подключения к базе данных, то внести изменения нужно именно в файл wp-config.php, помните об этом.

За настройки подключения к базе данных MySQL отвечают следующие константы:

Имейте в виду, что в константе DB_HOST не всегда будет значение localhost, это может быть и IP адрес сервера, либо же какой-то другой адрес, если вы используете хостинг от МастерХост, например. В любом случае, эту информацию вам нужно уточнить у вашего хостинг-провайдера, либо в личном кабинете вашего хостинга.

Но для большинства хостингов значение DB_HOST будет всё-таки localhost и чаще всего изменять его не придётся.

Стоит упомянуть, что в некоторых случаях вам нужно будет указать нестандартный порт для подключения к MySQL, это делается следующей командой в файле wp-config.php:

, где 3351 — порт, на котором «прослушивается» MySQL-сервер. Уточните это значение у вашего системного администратора.

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

Проверка работоспособности MySQL сервера

Если ваш хостинг-провайдер позволяет использовать скрипт phpMyAdmin — попробуйте воспользоваться им. Для этого зайти на ваш аккаунт, найдите пункт в меню с упоминанием базы данных и возле него будет ссылка на phpMyAdmin.

Если у вас виртуальный сервер (VPS) и вы используете cPanel или ISPManager, то ссылка на phpMyAdmin будет на главной странице панели управления сервером.

В любом случае, вам нужно попробовать зайти в базу данных вашего сайта. И, если всё удалось, то ещё раз проверить данные для подключения, которые вы внесли в файл wp-config.php из прошлого шага этой инструкции.

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

    Создаёте на компьютере файл, назовём его test.php и добавляем в него следующий код:

Вместо «пользователь» и «пароль» укажите свои данные для подключения к базе данных. Если у вас VPS — можете использовать учётную запись root.

  • Загружайте этот файл на FTP вашего хостинга
  • Открывайте в браузере адрес http://ваш-сайт.ru/test.php
  • Если на экране отразилось «Ошибка при подключении», то рядом с ней будет выведено сообщение (чаще на английском), по которой в Google или Яндекс можно найти какие-то комментарии
  • Если же отобразилось «Подключено успешно», тогда внесите используемые ваши логин и пароль для подключения к базе данных в файл wp-config.php, как в позапрошлом шаге
  • Читать еще:  Код ошибки or ccseh 05

    Если при открытии этого скрипта вы получили сообщение: #1045 – Access denied for user ‘foo’@’%’ (using password: YES), это значит вы используете неправильный логин или пароль. Проверьте ещё раз и попробуйте снова.

    В случае, если не удалось подключиться к базе данных ни через phpMyAdmin, ни через файл test.php — рекомендую обратиться в службу поддержки вашего хостинг-провайдера и разобраться в чём дело по телефону. У нормального провайдера круглосуточно работает служба поддержки.

    Решения, которые помогли другим

    Обновление настройки в wp_options

    Некоторым пользователям помогало выполнение следующего запроса к базе данных через phpMyAdmin:

    Исправляем ошибку установки соединения с базой данных

    Если вы занимаетесь разработкой своего сайта сначала на локальном компьютере, то при переносе на хостинг практически всегда столкнётесь с ошибкой установки соединения с базой данных, в английской версии WordPress она звучит так: Error establishing a database connection.

    Но совсем необязательно, что это будет из-за переноса сайта, могут быть изменены настройки подключения к базе данных: удалён пользователь, под которым вы подключались, либо же изменён пароль или MySQL вынесен на отдельный сервер.

    Также появление этой ошибки может означать недоступность сервера базы данных на вашем хостинге. В любом случае, проблема есть и её нужно решать.

    Проявляется ли проблема в wp-admin

    Первым делом стоит убедиться, что данное сообщение об ошибке выводится и на сайте, и в административной панели. Для этого попробуйте зайти в админку сайта (wp-admin).

    Если в административной панели выводится абсолютно аналогичное сообщение об ошибке установки соединения с базой данных — можете смело переходить к следующему шагу этой инструкции.

    Если же вы получили сообщение «Одна или несколько таблиц базы данных недоступны», тогда нужно будет выполнить автоматическое исправление таблиц механизмами WordPress.

    Для этого нужно выполнить следующие шаги:

      Открыть файл wp-config.php и добавить в него следующую строку:

    Если после этого шага сайт стал доступен и сообщение об ошибке больше не появляется — можете смело завершить чтение статьи и радоваться, что обошлись лишь испугом.

    В ином случае рекомендую продолжить чтение заметки.

    Проверка файла wp-config.php

    Файл wp-config.php один из самых важных файлов в WordPress — именно в нём прописаны все параметры для нормальной работы вашего сайта. Все настройки для подключения к базе данных тоже находятся именно в этом файле.

    Если вдруг вы, или кто-то другой (например, системный администратор), изменили логин или пароль для подключения к базе данных, то внести изменения нужно именно в файл wp-config.php, помните об этом.

    За настройки подключения к базе данных MySQL отвечают следующие константы:

    Имейте в виду, что в константе DB_HOST не всегда будет значение localhost, это может быть и IP адрес сервера, либо же какой-то другой адрес, если вы используете хостинг от МастерХост, например. В любом случае, эту информацию вам нужно уточнить у вашего хостинг-провайдера, либо в личном кабинете вашего хостинга.

    Но для большинства хостингов значение DB_HOST будет всё-таки localhost и чаще всего изменять его не придётся.

    Стоит упомянуть, что в некоторых случаях вам нужно будет указать нестандартный порт для подключения к MySQL, это делается следующей командой в файле wp-config.php:

    , где 3351 — порт, на котором «прослушивается» MySQL-сервер. Уточните это значение у вашего системного администратора.

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

    Проверка работоспособности MySQL сервера

    Если ваш хостинг-провайдер позволяет использовать скрипт phpMyAdmin — попробуйте воспользоваться им. Для этого зайти на ваш аккаунт, найдите пункт в меню с упоминанием базы данных и возле него будет ссылка на phpMyAdmin.

    Если у вас виртуальный сервер (VPS) и вы используете cPanel или ISPManager, то ссылка на phpMyAdmin будет на главной странице панели управления сервером.

    В любом случае, вам нужно попробовать зайти в базу данных вашего сайта. И, если всё удалось, то ещё раз проверить данные для подключения, которые вы внесли в файл wp-config.php из прошлого шага этой инструкции.

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

      Создаёте на компьютере файл, назовём его test.php и добавляем в него следующий код:

    Вместо «пользователь» и «пароль» укажите свои данные для подключения к базе данных. Если у вас VPS — можете использовать учётную запись root.

  • Загружайте этот файл на FTP вашего хостинга
  • Открывайте в браузере адрес http://ваш-сайт.ru/test.php
  • Если на экране отразилось «Ошибка при подключении», то рядом с ней будет выведено сообщение (чаще на английском), по которой в Google или Яндекс можно найти какие-то комментарии
  • Если же отобразилось «Подключено успешно», тогда внесите используемые ваши логин и пароль для подключения к базе данных в файл wp-config.php, как в позапрошлом шаге
  • Если при открытии этого скрипта вы получили сообщение: #1045 – Access denied for user ‘foo’@’%’ (using password: YES), это значит вы используете неправильный логин или пароль. Проверьте ещё раз и попробуйте снова.

    В случае, если не удалось подключиться к базе данных ни через phpMyAdmin, ни через файл test.php — рекомендую обратиться в службу поддержки вашего хостинг-провайдера и разобраться в чём дело по телефону. У нормального провайдера круглосуточно работает служба поддержки.

    Решения, которые помогли другим

    Обновление настройки в wp_options

    Некоторым пользователям помогало выполнение следующего запроса к базе данных через phpMyAdmin:

    Ссылка на основную публикацию
    Adblock
    detector