Ошибка wordpress error establishing database connection

Содержание

Understanding The Problem

As much as we don’t want to play Captain Obvious here, the nature of the error is self-explanatory – it’s an error establishing a database connection.


Here’s what it means exactly:

WordPress uses two main pieces of technology to provide you with all its awesome abilities: PHP and MySQL.

  • PHP is a programming language. WordPress – the core WordPress files – have been written in PHP. Boring, sorry.
  • MySQL is a database technology. WordPress uses a MySQL database to store all of your website’s content. This includes your posts, pages, but also the smaller elements, such as the title of your site, the layout of your widgets, the color settings, and etc. Basically, the MySQL database is where every, even the smallest piece of information about your website, is kept.

Putting the two together, WordPress uses PHP commands to connect to the MySQL database, get the information it needs, and then display everything on the screen.

This is where the error comes into play. The error occurs when, for whatever reason, WordPress cannot access the information in the database via PHP commands. When that happens, WordPress basically doesn’t know what to do next, so the only thing it can say is, “Error establishing a database connection.”

With that being said, there can be a handful of reasons why the error occurs. Some of the more common ones:

  • Incorrect login credentials. WordPress needs a specific login and password to access the database. If those have changed for any reason then WordPress will no longer be able to fetch anything from the database.
  • Corrupted WordPress files. The core WordPress files can get corrupted as a result of a failed update, among others. This can include things like failed updates of the plugins, themes, and even the main WordPress software updates.
  • Corrupted database. This might be a result of a rogue plugin messing up the database internally, a hacker’s attack, a theme failing, and many more.
  • The database server is down. In some cases, the web server – the server that stores your website files – is run on a different machine than the database. And that separate database server can simply be down for whatever reason.
  • Too much traffic. Even though this is a good problem to have, it’s still a problem. Specifically, your database might be unresponsive due to a high spike in traffic. For example, maybe one of your posts went viral and now everyone and their dog tries to access your site? Hence the server is not able to handle part of those visits.

Не верно введены реквизиты подключения к базе данных.

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

/** Имя базы данных для WordPress */ define(‘DB_NAME’, ‘database name’);

/** MySQL имя пользователя */ define(‘DB_USER’, ‘username’);

/** MySQL пароль базы данных */ define(‘DB_PASSWORD’, ‘значение пароля’);

/** MySQL сервер — иногда требуется изменять это значение. например на Мастерхосте */ define(‘DB_HOST’, ‘localhost’);

/** Кодировка базы данных, используемая при создании таблиц. */ define(‘DB_CHARSET’, ‘utf8’);

1 2 3 4 5 6 7 8 9 10 11 12 13 14

/** Имя базы данных для WordPress */

define(‘DB_NAME’,’database name’);

  /** MySQL имя пользователя */

define(‘DB_USER’,’username’);

  /** MySQL пароль базы данных */

define(‘DB_PASSWORD’,’значение пароля’);

  /** MySQL сервер — иногда требуется изменять это значение. например на Мастерхосте */

define(‘DB_HOST’,’localhost’);

  /** Кодировка базы данных, используемая при создании таблиц. */

define(‘DB_CHARSET’,’utf8′);

Требуется проверить значения заданные для DB_USER и DB_PASSWORD — логин и пароль.

Что делать с error establishing a database connection

Теперь попробуем разобрать каждый из вариантов и попытаться понять что делать с error establishing a database connection, а также для предотвращения ее появления в будущем.

1. Базы данных нет

Если базы данных больше не существует, вы ее случайно стерли или ее стер хостер, то у вас есть два пути — либо установить WordPress заново, либо восстановить базу данных mysql из резервной копии. Все настройки базы данных находятся в файле wp-config.php, который находится в корневом каталоге сайта. Скорее всего, на хостинге у вас не будет доступа по SSH и придется довольствоваться FTP.

Вы можете посмотреть как называется база данных в нем:

Затем убедитесь, с помощью Phpmyadmin, что она есть и в ней есть данные:

2. Неверные настройки

Как я уже сказал, все настройки работы с базой данных находятся в файле wp-config.php. Вы можете посмотреть его содержимое через FTP или подключившись к серверу по SSH. Нужные нам параметры находятся в таких переменных:

  • DB_NAME — имя базы данных;
  • DB_USER — пользователь базы;
  • DB_PASSWORD — пароль базы;
  • DB_HOST — хост базы;

Проверить правильность ввода логина и пароля вы можете попытавшись войти с помощью них в Phpmyadmin:

Или используя консольную утилиту mysql если можете подключиться по ssh:

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

3. Ограничения сервера

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

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

4. Сервис mysql не запущен

Эта проблема уже касается только VPS, поскольку на хостингах у вас нет доступа к таким службам и вы не сможете ничего сделать. На VPS вы можете делать все что угодно с любой службой. Чаще всего в качестве сервера баз данных используется MariaDB. Чтобы проверить запущена ли она в CentOS наберите:

В Ubuntu имя сервиса будет немного отличаться:

Если вы увидите надпись Iactive (dead) значит сервис не запущен. Почему? Это уже другой вопрос. Чтобы восстановить работоспособность сайта попробуйте запустить его:

Чаще всего сервер баз данных падает из-за нехватки памяти для работы движка innodb. Чтобы предотвратить такие падения в будущем можно сделать две вещи:

  • Удалить или остановить программы, потребляющие очень много памяти или увеличить количество памяти на сервере;
  • Настроить автоматический перезапуск MariaDB в случае, если она упала с помощью systemd. В этом случае вы даже не будете замечать, что были какие-либо проблемы и ошибка error establishing a database connection возникать не будет, но это только пока с памятью все не совсем уж плохо.

Чтобы заставить systemd следить за состоянием сервиса и перезапускать его по мере необходимости создайте файл /etc/systemd/system/mariadb.service.d/restart.conf и добавьте в него такое содержимое:

Затем обновите конфигурацию сервисов:

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

Запуск восстановления

Существует аварийный запуск (fix) восстановления контакта SQL и файлов стандартными средствами WordPress . По знакомой схеме открываем файл wp-config, в конец вставляем код.

Не забываем сохранять изменения и закачивать обратно на хостинг через FileZilla.

Переходим по адресу site.ru/wp-admin/maint/repair.php где взамен site.ru доменное имя. Откроется страница на которой нажимаем Починить поврежденную базу данных.

Начнется процесс, если он удачно закончился и error establishing a database connection пропала, то появится страница с успешными восстановленными таблицами, и с предупреждениями, что нужно удалить код вносимый ранее для запуска восстановления.

Обязательно удалите строчку, сохраните и перезапишите файл wp-config, иначе любой хакер получает полный доступ к файлам ядра WordPress.

Still Frustrated? Use Managed WordPress Hosting to Prevent These Errors

While not a solution per se, moving over to a managed WordPress hosting provider could save you a lot of headaches if you’re already starting to see these types of errors. Managed WordPress hosting is less flexible from a features point of view, but, if all you need is to be able to run WordPress, it can be an excellent option. (This very site runs on such a service.) WordPress-specific managed hosting is tailored to running WordPress as efficiently and quickly as possible. The hardware, the server software, and the customer care representatives — just about everything, in fact — are geared towards (and optimized for) WordPress!

The downsides of this type of hosting are not being able to access your server via SSH, and not being able to install other scripts outside WordPress (i.e. you can run WordPress and nothing else). Additionally, most managed WordPress hosts will prohibit you from using certain plugins that have been deemed either substandard and/or unsuitable for their systems.


If you’re interested in managed WordPress hosting, take a look at the options. Some of the best are those offered by WP Engine (arguably the leader in the managed WordPress hosting arena), Kinsta (another solid option that’s priced similarly to WP Engine), and Flywheel (geared towards designers and agencies).

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

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

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

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

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

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

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

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

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

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

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

Step 2 — Check Database Login Credentials

If you’ve just moved your WordPress install between servers or hosting providers, you might need to update your database connection details. These are stored on the server in a PHP file called .

First, let’s find our file:

This searches everything from the root directory () down, and finds any file named . If such a file exists, the full path will be output:

Now use your favorite text editor to open the config file. We’ll use the editor here:

This will open a text file full of configuration variables and some explanatory text. Up towards the top is our database connection information:

wp-config.php

Check that these three variables are correct based on your records. If they don’t look right, update as appropriate, save and exit (, then if you’re using ). Even if the login information looked correct, it’s worth attempting to connect to the database from the command line, just to make sure. Copy and paste the details right from the config file into the following command:

You’ll be prompted for a password. Paste it in and press . If you get an Access denied error, your username or password are incorrect. Otherwise the command will show all the databases the specified user has access to:

Verify that one of the databases exactly matches what’s in your WordPress configuration file. If it does, you’ve verified that your config is correct and that WordPress should be able to log into the database successfully. Reload your website to see if the error is gone.

Still not working? The next thing to try is repairing the database.

А что делать если WordPress уже установлен и появилась такая ошибка?

В этом случае нам нужно открыть файл wp-config.php, который находится в корневой папке вашего сайта. Для этого:

  1. 1. Скачиваем файл к себе на компьютер. Здесь вам нужно зайти в панель правления хстингом и найти там инструмент «Файловый менеджер». Затем найти папку с файлами сайта и в ней должен быть файл wp-config.php. Так же вы можете воспользоваться FTP-клиентом для того чтобы скачать этот файл к себе на компьютер. Подробнее о том как работать с FTP клиентом я писала здесь.
  2. 2.Открываем скачанный файл при помощи текстового редактора Блокнот или любого редактора кода если он у вас установлен.
  3. 3.Находим вот такой код:

    PHP

    define(‘DB_NAME’, ‘r217_test’); /** Имя пользователя MySQL */ define(‘DB_USER’, ‘r217_test’); /** Пароль к базе данных MySQL */ define(‘DB_PASSWORD’, ‘8kjllk1233’);

    1 2 3 4 5

    define(‘DB_NAME’,’r217_test’);

    /** Имя пользователя MySQL */

    define(‘DB_USER’,’r217_test’);

    /** Пароль к базе данных MySQL */

    define(‘DB_PASSWORD’,’8kjllk1233′);

    Вместо ‘r217_test’ у вас будет название вашей базы данных.

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

  4. 4.Заходим в панель управления вашим хостингом и находим там раздел, связанный с базами данных. Убедитесь в том, что нужная база данных существует, имеет такое название как вы указываете, а так же проверьте чтобы имя пользователя и пароль совпадали.

    При копировании названия базы данных, имени пользователя я и пароля обращайте внимания на пробелы. Их не должно быть в начале и в конце копируемых данных.

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

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

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

  6. 6.Если название БД или логин пользователя и пароль в файле wp-config.php отличаются от тех что на хостинге – нужно их перезаписать и сохранить изменения в файле.
  7. 7.Загружаем изменённый файл к себе на хостинг с заменой существующего там файла. Можно не скачивать фалы сайта к себе на компьютера, а редактировать их сразу на хостинге. Для этого вам понадобится редактор кода Notepad++ или его аналог.
  8. 8.

Как им пользоваться я писала в этой статье: «Редактирование файлов сайта в Notepad++»

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

How To Avoid This Error In the Future?

While there isn’t a 100% fail-proof way to protect your site against any error establishing a database connection, there are two main elements that you should have in your insurance puzzle to be at least 90% safe:

  • Quality hosting. Work only with hosts that have optimized their platforms to work with WordPress. That way, you can always count on knowledgeable support and fast help. Not to mention that you will also avoid many common WordPress problems. Here are our recommendations.
  • Have backups. Install a simple backup plugin like UpdraftPlus (it works automatically) and you should always have a working WordPress backup that you can restore in case everything else fails.

We hope this guide helps! And as always, feel free to reach out to us if you’re having some tough time with an error establishing a database connection.

Шаг 1. Свяжитесь с тех.поддержкой хостинга

Если ваш сайт работал минуту назад (или день назад), а теперь не работает, то скорее всего это ошибка на стороне хостинга.

Свяжитесь с тех.поддержкой, скажите, что получили ошибку “error establishing a database connection”.


Спросите, работает ли база данных (или сервер базы данных), и спросите, не было ли пика нагрузки на сервере.

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

Как минимум, они скажут вам, что база данных в порядке и на сервере нет (или есть) какая-то подозрительная активность.

Если причина не на их стороне, то есть сервер работает и на нем нет пика трафика, и они не могут вам помочь, то переходите к шагу 2.

What Does “Error Establishing a Database Connection” Mean?

First, let’s take a look at how WordPress works to display your website, and it’ll become clear why this error is so devastating.

The WordPress software is written using PHP and MySQL. Why two languages? Because all the information that makes up your website is stored in a MySQL database, and WordPress uses PHP to store and retrieve information from that database.

Generally, whenever a page is loaded on your website, it’s built on-the-fly. PHP code is used to access your MySQL database and retrieve every bit of information needed to create the page. There’s a PHP query to access the post title, another to grab the author name, another to retrieve the publication date, and so on.

Back to your error message: “Error establishing a database connection.” This means that for some reason the PHP code was unable to connect with your MySQL database to retrieve the information it needs to build that page.

That’s why this error is often all you see on an otherwise blank page. If you can’t connect to your database, there’s no way to know what to display; no information about your website is available.

Проверка синхронизации базы данных и CMS в wp-config

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

Вошли в корневую папку сайта там где каталоги wp-admin и wp-content. Ищем файл wp-config.php, открываем его с помощью правой кнопки мыши, выбираем Просмотр/Правка.

Откроется программа для редактирования документов. Запомним несколько строк, а именно:

  1. DB_NAME имя базы в нашем случае valent5k_wp3
  2. DB_USER пользователь, так же valent5k_wp3
  3. DB_PASSWORD пароль от подключения
  4. DB_HOST адрес сервера или хоста, по умолчанию localhost, но бывает и другие значения

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

Если эти три параметра совпадают с прописанными из wp–config, то двигаемся дальше, если нет то перезаписываем, в wp-config, на то что указано в панели Бегета. Теперь нажимаем на значок с двумя точками.

Вписываем пароль из wp-config в поле DB_PASSWORD, у нас juzPo7HP6 и нажимаем Изменить.

Теперь смотрим на сайт и смотрим все ли работает. План действий такой:

  • Открываем wp-config
  • Копируем конфигурацию подключения
  • Сверяем или обновляем доступы к базе данных на хостинге

Такая схема работает и с нарушениями на локальном сервере типа Open server, XAMPP , Laragon и им подобные. Для более наглядного представления процесса записал свое видео.

Альтернативные решения

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

Один из пользователей рассказал о том, что его клиент наткнулся на ошибку, связанную с базой данных. Даже после восстановления базы данных ошибка не пропадала. Он многое перепробовал, но в конце концов проблема нашлась в url сайта. Он был изменен, в результате чего появилась эта ошибка. Он запустил SQL-запрос, зайдя в phpMyAdmin:

UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'

Убедитесь, что вы поменяли YOUR_SITE_URL на действующий url, например: https://www.coma.lv. Опции wp_ будут зависеть от того, поменяли ли вы дефолтный префикс базы данных WordPress.

В его и нескольких других случаях это исправило ошибку. Другой пользователь сказал, что ему удалось подключиться к базе данных с помощью testconnection.php, поэтому он поменял пользователя wp-config.php на корневого пользователя. WordPress стал прекрасно работать. Затем он вернул настройки обратно к пользователю базы данных. Он не мог понять, в чем была проблема, но думает, что в опечатке.

Еще один пользователь сообщила, что она убрала содержимое active_plugins из таблицы wp_options и отредактировала содержимое recently_edited. Судя по всему, это разрешило проблему.

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

Это очень неприятная ошибка. Что, из того что вы пробовали, сработало у вас? Мы с удовольствем расширим эту статью, чтобы упростить поиск решения для других.

Шаг 1 – Определение причины возникновения ошибки Error Establishing a Database Connection

Первое, в чём нужно убедиться, что вы получаете одинаковые ошибки, как на основной части вашего сайта (frontend) yoursite.com, так и на админ части (backend) yoursite.com/wp-admin (замените yoursite.com на URL домашней страницы вашего сайта на WordPress). Если сообщение об ошибке одинаковое на обоих частях сайта: Error establishing a database connection, то переходите к . Но, если ваш сайт недоступен и вы получаете совершенно другое сообщение об ошибке при попытке логина: One or more database tables are unavailable. The database may need to be repaired (Одна или несколько таблиц недоступны. База данных должна быть восстановлена), тогда вам нужно восстанавливать базу данных.

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

Вы можете найти wp-config.php в вашей корневом файловом каталоге WordPress.

Откройте wp-config.php, добавьте следующую строку кода в конце файла и сохраните изменения:

<a href="#Step-2-Checking-database-connection-settings-in-wp-configphp">

Эта строка разрешит вам оптимизацию и восстановление вашей базы данных, перейдя по пути yourwebsite.com/wp-admin/maint/repair.php (где yourwebsite.com нужно заменить на ваш URL).

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

Обратите внимание, что страница восстановления базы данных не защищена логином и кто угодно может зайти по адресу yourwebsite.com/wp-admin/maint/repair.php. удалите строку кодаdefine( ‘WP_ALLOW_REPAIR’, true );wp-config.php

удалите строку кодаdefine( ‘WP_ALLOW_REPAIR’, true );wp-config.php

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

Шаг 5 – Обращение в хостинг компанию

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

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

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

Проверить доступна ли база данных (или находится в офлайне), вы можете запустив простой PHP скрипт. Работа скрипта заключается в проверке, может ли ваш сайт установить соединение с базой данных. Приводим этот скрипт ниже:

<?php
$servername = "mysql.hostinger.com";
$database = "u266072517_name";
$username = "u266072517_user";
$password = "buystuffpwd";
 
// Create connection
 
$conn = mysqli_connect($servername, $username, $password, $database);
 
// Check connection
 
if (!$conn) {
 
    die("Connection failed: " . mysqli_connect_error());
 
}
echo "Connected successfully";
mysqli_close($conn);
?>

Как вы видите, всё, что потребуется — это имя сервера (обычно в формате, указанном выше для хостинг провайдеров), имя конкретной базы данных, с которой вы хотите соединиться, ваши MySQL имя пользователя и пароль. Мы описывали эти параметры в одном из наших руководств, которое тоже имеет смыл почитать, так как в нём рассказано, как подключиться к базе данных MySQL через PHP (англ.).


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

Следующее, мы создаём переменную $conn, которая будет хранить результат выполнения метода mysqli_connect(). Если эта переменная пустая, мы получим сообщение Connection failed: <error_name>. С другой стороны, при успешном подключении, мы получим на экране результат Connected successfully.

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

Причины ошибок в файле Db-error.adp

Проблемы Db-error.adp могут быть отнесены к поврежденным или отсутствующим файлам, содержащим ошибки записям реестра, связанным с Db-error.adp, или к вирусам / вредоносному ПО.

Более конкретно, данные ошибки db-error.adp могут быть вызваны следующими причинами:

  • Поврежденные ключи реестра Windows, связанные с db-error.adp / Linux from Scratch.
  • Вирус или вредоносное ПО, которые повредили файл db-error.adp или связанные с Linux from Scratch программные файлы.
  • Другая программа злонамеренно или по ошибке удалила файлы, связанные с db-error.adp.
  • Другая программа находится в конфликте с Linux from Scratch и его общими файлами ссылок.
  • Поврежденная загрузка или неполная установка программного обеспечения Linux from Scratch.

Step 3 — Repairing the WordPress Database

Sometimes, due to a failed upgrade, a database crash, or a faulty plugin, your WordPress database can become corrupted. This problem can present itself as a database connection error, so if your problem wasn’t the MySQL server or the configuration file, try repairing your database.

WordPress provides a built-in utility to repair the database. It is disabled by default, because it has no access controls and could be a security issue. We will enable the feature, run the repairs, and then disable it.

Open up the file again:

On any blank line, paste in the following:

wp-config.php

This defines a variable that WordPress looks for when determining if it should enable the repair feature.

Save and close the file. Switch over to your browser and load the following address, being sure to substitute your site’s domain or IP address for the highlighted portion:

A database repair page will load:

Press the Repair Database button, and you’ll be taken to a results page where you can see the checks and repairs happening in real-time:

Once the process finishes, be sure to open up the file again, and remove the line we just pasted in.

Did you notice any repairs being made? Try your site again, and check whether the error is gone. If unrepairable issues were found, you might need to restore the database from a backup if you have one available. Please reference our tutorial How To Import and Export Databases in MySQL for details on how to do so.

If no issues were found with the database, then we’ve still not discovered the problem. It could be intermittent issues we’re just missing, or something more obscure. Lets wrap up with a few other possibilities to try.

Перезапись базы из бэкапа на последнюю работоспособную версию

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

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

  1. Зайдите в PHPMyAdmin, используя логин и пароль, выданные хостинг-провайдером при регистрации.
  2. В левой панели показывается ваша база данных (1) с входящими в нее таблицами. В рабочей области выберите вкладку «Импорт» (2).
  3. Нажмите кнопку «Choose File» (3) и укажите расположение ранее сделанного бэкапа, из которого будет восстанавливаться база.
  4. Нажмите «ОК» (4), остальные данные, как правило, соответствуют стандартным настройкам WordPress и не требуют изменения.

Step 1 — Check the Server Memory Resources

A good first step for debugging this problem is to try logging into the server to see if the system is healthy and MySQL is running.

Log into your server via SSH, remembering to replace the highlighted portions below with your own user and server details:

If you need help logging into your server, please see our article How To Connect To Your Droplet with SSH.

Note: If you’re sure you have your connection details correct but you’re still having trouble logging in, it could be that your server is out of memory or under very heavy load. This could be due to a sudden burst of traffic to your website, and would explain the WordPress error. You may need to restart your server before you’ll be able to log in.

Now that we’ve logged in successfully, let’s check that our MySQL server is running:

The command prints information about our server’s networking system. In this case, we want the names of programs () listening for connections () on a tcp socket (). Check the output for a line listing , highlighted below:

If your output is similar, we know MySQL is running and listening for connections. If you don’t see MySQL listed, try starting MySQL manually. On most systems that would look like this:

Some Linux distributions (CentOS, notably) use instead of plain for the service name. Substitute as appropriate.

MySQL should start. To verify, rerun the command we used above, and check the output for a process.

MySQL and WordPress both need a good amount of memory to run properly. If MySQL has quit due to a low memory situation, we should see evidence of that in its error logs. Let’s look:

will search through log files, including older log files that have been archived as compressed files. We’re searching for lines that contain , in any file in the directory.

If you see one or more lines like the above, your MySQL server ran out of memory and quit. If it’s just one line, you may be temporarily experiencing unusual traffic. If there are many error lines, your server is regularly becoming memory constrained. Either way, the solution is to migrate to a server with more available memory. On most cloud providers it’s a simple matter to upgrade an existing server with minimal downtime.

If you see no output after running the command, your server is not running out of memory. If your site is still serving errors, continue on to the next step where we’ll look at our WordPress configuration and make sure the MySQL login details are correct.

What Causes This Error?

While the meaning of the error message is clear, the reasons behind its occurrence often aren’t.

There are many reasons why your website could be having trouble connecting to your database, but they generally fall into three categories:

  1. Your login credentials for your database are wrong. Your database uses separate login credentials (username and password). If those credentials have recently been changed, your website won’t be able to access the database with the old credentials.
  2. Your database is corrupted. Any number of things could cause your WordPress database to become corrupted, from uploading a bad plugin, to lightning strikes to the server (seriously — though luckily that isn’t too common).
  3. The server that hosts your database is down. Your database’s server may be down due to a problem or error on the part of your web hosting company, or you could be experiencing a big traffic spike that your server just couldn’t handle.

So with all these possibilities, how can you narrow down the problem and fix it?

Overview

As you can see, the exact cause of the infamous WordPress ‘error establishing a database connection’ can be one of many. In our experience, however, in the vast majority of cases it’s either because of some kind of user-generated error (e.g. a typo in your file) or is an issue that can be resolved by the user. If you’re having trouble, follow the methods outlined above to get your site up and running — and, if you’re still having no luck after that, talk to your host to have them look into the problem for you.

Finally, if you don’t want to have to deal with these types of errors in the future, your best bets are to either move to managed WordPress hosting or pay for a WordPress maintenance/support service. That way, you’ll have someone else monitoring your site and able to fix any errors that crop up.

If you’ve seen any edge cases or downright weird things happening in relation to this error, let us know in the comments below.

By

Colin Newcomer is a freelance writer and long-time Internet marketer. He specializes in digital marketing and WordPress. He lives a life of danger, riding a scooter through the chaos of Hanoi.


С этим читают