Как исправить ошибку error establishing a database connection в wordpress
Содержание:
- Содержание
- Работа с Денвером — особенности самого сервера
- Включение протоколовEnable protocols
- Adım 3: MySQL Serverını Kontrol Etme
- Перевод на русский и ошибки в cms wordpress
- 500 internal server error
- Ошибка «Warning: Cannot Modify Header Information – Headers Already Sent By»
- На сайте возникли временные проблемы технического характера
- См. также:See Also
- Частичная проблема
- Как исправить поврежденную БД в WordPress
- Step 1 — Check the Server Memory Resources
- Отсутствует файл/директория для работы скрипта
- Ошибка синтаксиса кода WordPress
- Возникает ли такая же ошибка для /wp-admin/?
- Что делать с error establishing a database connection
- Восстановление базы данных
- Белый экран смерти (WSOD)
- 6. Проверьте права доступа к файлам и папкам
- Maximum execution time of 30 seconds exceeded
- Internal Server Error
- 13. Используйте безопасный FTP (SFTP), или SSH
- Вывод
Содержание
Прежде чем понять, как избавиться от ошибки установки соединения с базой данных WordPress, важно рассмотреть строение системы. Любой ресурс на основе этой CMS основан на двух важных элементах
Речь идет о программных файлах и БД.
Первые находятся на хостинге, куда можно попасть по запросу через FTP. Вторые хранятся на хостинге в отдельном секторе. Для перехода необходимо скачать специальный сервис. Популярностью пользуется PhpMyAdmin.
Если программным документам нужна дополнительная информация, они переходят в БД, используя материалы оттуда. Далее отображают страницу ресурса корректно.
Чтобы путь к хранилищу был правильным, нужен доступ. Под ним подразумевают имя пользователя и шифр, которые были установлены во время начальной настройки ресурса. Хранится эта информация в главной папке ресурса.
При обнаружении ошибки установки соединения с базой данных становится понятно, что у программных документов нет возможности попасть в БД и корректно отобразить страницу.
Работа с Денвером — особенности самого сервера
Перед тем как настроить Денвер, необходимо учесть несколько нюансов самого сервера. Прежде всего, ключевой особенностью Денвера становится поддержка работы с несколькими веб-проектами одновременно, с расположением каждого из них отдельно на своём виртуальном хосте. Для этого под каждый проект сервером создаётся отдельная папка. Создание таких хостов происходит автоматически.
Как показывает практика, настройка Denwer не представляет особых сложностей, но всё же важно учесть ряд ключевых параметров для эффективной и стабильной работы. Прежде всего, как работать с Денвером, что нужно учесть для настройки?. Все компоненты этого программного решения уже предоставляются полностью настроенными, готовыми к работе
В том числе SSL, кодировка MySQL и прочие программные средства. При желании пользователь может самостоятельно вручную обновлять любой из сервисов, входящих в состав Денвера. С этой целью новые версии дистрибутивов просто копируются в папке поверх новых
Все компоненты этого программного решения уже предоставляются полностью настроенными, готовыми к работе. В том числе SSL, кодировка MySQL и прочие программные средства. При желании пользователь может самостоятельно вручную обновлять любой из сервисов, входящих в состав Денвера. С этой целью новые версии дистрибутивов просто копируются в папке поверх новых.
После того как наша установка завершена, вновь появится окно браузера, информирующее о завершении инсталляции. Его можно смело закрывать. Для запуска программы находим на рабочем столе ярлык Start Denwer — дважды нажав по нему, запустим наш сервер.
Жмем на Start Denwer
Конечно, какое-то время программе нужно для запуска. А после загрузки приложения на панели будут заметны две иконки — при их наличии запуск прошёл нормально. Когда мы откроем «Мой компьютер», увидим появление на компьютере виртуального диска Z.
Перейдя на него, мы можем заметить несколько папок. В этом случае нас интересует как раз папка Home.
И здесь мы уже заметим наличие нескольких папок — Localhost и test1.ru, которые будут корневыми для двух локальных сайтов. Первый содержит набор утилит по работе с базой данных, во второй папке находится тестовый сайт с одной веб-страницей.
Остановим своё внимание на работе с базой данных. Здесь для работы с Денвером запускаем любой браузер, набрав localhost или http://localhost
После этого увидим сообщение о работе сервера.
Затем для настройки Денвера эту страницу прокручиваем вплоть до заголовка «Утилиты» — увидим множество ссылок. Выбираем строку «phpMyAdmin — администрирование СУБД MySQL», после чего увидим новое окно.
Латиницей вписываем в поле Create new database название своей базы данных, остаётся лишь нажать Create и должно появиться новое окно.
Тут уже не нужно ничего делать, просто нажимаем вкладку Privileges, чтобы перейти дальше.
При нажатии Add a new User мы увидим новое окно, в котором необходимо указать ряд сведений:
- User name — отмечаем имя пользователя.
- Host — здесь указываем Localhost либо из выпадающего списка можно выбрать Local.
- Password и Re-type — здесь необходимо указать пароль. Либо его можно сгенерировать с помощью Generate. Однако обязательно нужно запомнить, лучше его где-нибудь зафиксировать, он нам ещё обязательно понадобится в дальнейшем.
Ниже мы заметим блок Global privileges. Здесь необходимо выделить все опции с помощью кнопки Check All. Затем просто остается нажать Go в правом углу, после чего мы завершили работу. Остаётся лишь поздравить — при прохождении всех указанных шагов вы успешно справились с созданием своей новой базы данных. Далее, перейдём к её непосредственному использованию для эффективной и стабильной работы своего сайта.
Включение протоколовEnable protocols
В некоторых установках SQL Server соединение с компонентом Database Engine с другого компьютера не включено. Администратор может разрешить соединение с помощью диспетчера конфигурации.In some installations of SQL Server, connecting to the Database Engine from another computer is not enabled unless an administrator uses Configuration Manager to enable it. Чтобы разрешить соединения с других компьютеров, нужно выполнить указанные ниже действия.To enable connections from another computer:
- Запустите диспетчер конфигурации SQL Server, как описано выше.Open SQL Server Configuration Manager, as described earlier.
- В диспетчере конфигурации на левой панели разверните узел Сетевая конфигурация SQL Server, а затем выберите экземпляр SQL Server, к которому нужно подключиться.Using Configuration Manager, in the left pane expand SQL Server Network Configuration, and then select the instance of SQL Server that you want to connect to. На правой панели перечислены доступные протоколы соединений.The right-pane lists the connection protocols available. Как правило, включена общая память.Shared Memory is normally enabled. Ее можно использовать только на том же компьютере, поэтому в большинстве установок общая память остается включенной.It can only be used from the same computer, so most installations leave Shared Memory enabled. Для подключения к SQL Server с другого компьютера обычно используется протокол TCP/IP.To connect to SQL Server from another computer, you normally use TCP/IP. Если TCP/IP не включен, правой кнопкой мыши щелкните TCP/IPи выберите команду Включить.If TCP/IP is not enabled, right-click TCP/IP, and then click Enable.
- Если включенный параметр для протокола был изменен, необходимо перезапустить ядро СУБД.If you changed the enabled setting for any protocol, restart the Database Engine. На левой панели щелкните Службы SQL Server.In the left pane select SQL Server Services. На правой панели щелкните экземпляр Database Engine правой кнопкой мыши и выберите команду Перезапустить.In the right-pane, right-click the instance of the Database Engine, and then click Restart.
Adım 3: MySQL Serverını Kontrol Etme
Error Establishing a Database Connection hatası almanıza sebep olan bir diğer etken ise sitenizin çok fazla trafik alması olabilir.
Buda serverınızın yani hostunuzun aldığınız trafiği kaldıramamasına yani Error Establishing a Database Connection hatası almanıza sebep olur ki özelliklede paylaşımlı hosting (public hosting) kullanıyorsanız.
Bu durumda yapabileceğiniz en iyi şey hostunuzla bağlantı kurup MySQL serverınızın trafiği kaldırıp kaldırmadığını sormanızdır.
Eğer bu işlemi hostunuzla bağlantıya geçmeden kendiniz yapmak istiyorsanız, aynı server üzerindeki diğer web sitelerinizi kontrol edin eğer o sitelerinizde de aynı hatayı alıyorsanız, Error Establishing a Database Connection hatası almanızın kesin sebebi MySQL serverınızdan kaynaklıdır.
1-Eğer aynı server üzerinde başka bir siteniz yoksa cPanel’inize gidip phpmyadmin üzerinden veritabanınıza bağlanın. Eğer bağlanabiliyorsanız, birde kullanıcıların veritabanınıza ulaşma izinlerini kontrol etmeniz gerekli.
Bunu yapmak için sitenizde testconnection.php isminde bir dosya oluşturun ve aşağıdaki kodu bu dosyanın içine yapıştırın.
Önemli:Şifre kısmını ve kullanıcı adını kendi kullanıcı bilgilerinizle değiştirdiğinizden emin olun.
Kodu ekledikten sonra tarayıcınızdan testconnectiong.php isminde oluşturduğunuz URL adresine gidin ( )
Eğer adrese gittiğinizde “Connected successfully” mesajı alırsanız, yani başarılı bir şekilde bağlantı sağlarsanız bu ziyaretçilerinizin wordpress sitenizin veritabanına bağlanması için yeterli izinleri olduğunu gösterir.
Eğer burda bir hata alıryosanız öncelikle wp-config.php dosyanıza geri dönüp tekrar herşeyi gözden geçirin ve bu işlemi tekrar gerçekleştirin. Eminim ki atladığınız bir nokta var.
2-Eğer cPanel’inize gidip phpmyadmin üzerinden veritabanınıza bağlanmaya çalıştığınızda bağlanamıyor ve alttaki gibi bir hata alıyorsanız;
Serverlarınızda bir hata var demektir. Bu sadece serverlarınızın kapalı olduğu anlamına gelmez aynı zamanda kullanıcı izinlerinde de (user permission) bir problem olduğunun işareti olabilir.
Be bu hatayı aldığımda ve cPanel üzerinden phpmyadmin paneline ulaşım sağlamaya çalıştığımda bana gibi bir hata verdi.
Sonuç olarak eğer cPanel üzerinden phpmyadmin paneline ulaşmaya çalışırken yada testconnection.php testini gerçekleştirdiğinizde (doğru veritabanı bilgileriyle) Error Establishing a Database Connection hatası almaya devam ediyorsanız, hostunuzlabağlantıya geçmelisiniz.
Umarım Error Establishing a Database Connection Hatası başlıklı yazımı yararlı bulmuşsunuzdur.Teşekkürlerinizi, yazımı sosyal mecralarda paylaşarak gösterebilirsiniz. Bu benim için fazlasıyla yeterli olacaktır.
Перевод на русский и ошибки в cms wordpress
Точный перевод “Ошибка установки соединения с базой данных”, то есть файлы и mysql (контентная часть) не соединяются.Появление надписи в wordpress является следствием действий администратора, неожиданно она не появится. Существует несколько причин:
- Залез в wp-config.php. Незнание начинающих пользователей, что wp-config управляет настройкой связи, менять его категорически не рекомендуется.
- Плохие плагины. Установка нового “крутого” дополнения, которое посоветовал “знакомый” блоггер, “разбирающийся” в wordpress. Если поставили плагин и блог выдал error establishing a database connection, то удаляйте через FTP и всё станет на свои места.
- Хостинг проводит плановые или аварийные работы. Стандартно раз в месяц, ничего странного в этом нет, профилактика, ремонт нужен всяком оборудованию.
- Новая тема (шаблон)
- Переезд на другой хостинг. Проблема возникает если специалисты нового хостинга криво перенесли компоненты и не проверили работоспособность.
- Много посетителей. Перегруз сервера может прервать соединение, поэтому при возникновении перебоев, задумайтесь о переходе на более мощный тарифный план.
500 internal server error
Ошибка довольно неприятная, но редкая. Чаще всего
связана с неправильным файлом в корневом каталоге сайта. Лечится довольно просто — достаточно удалить его, затем зайти в админ-панель WordPress, перейти в раздел постоянных ссылок и сохранить еще раз желаемую структуру. После сохранения — WordPress создаст новый файл htaccess и с очень большой вероятностью ошибка пропадет.
Кроме этого, есть еще множество других причин возникновения ошибки 500. Лучший способ выяснить причину — открыть файл error_log
, который обычно находится в корне сайта(если хостер включил журналирование, конечно).
Есть неплохой стандартный вариант — необходимо включить режим отладки WordPress. Для этого добавьте в файл wp-config.php такую строку:
DEFINE («WP_DEBUG», TRUE);
и затем уже смотреть журнал ошибок. В таком случае ошибка будет описана более подробно, что облегчит поиск и устранение.
Ошибка «Warning: Cannot Modify Header Information – Headers Already Sent By»
Еще одна распространенная ошибка WordPress, которая беспокоит многих WordPress-пользователей, особенно начинающих. Если вы уже сталкивались сней, то вероятно видели что-то вроде этого:
Warning: Cannot modify header information — Header already sent by (Output started at /blog/wp-config.php:34)
Последняя часть (Output started at /blog/wp-config.php:34) говорит нам, откуда взялась ошибка
Причина возникновения ошибки:
Присутствие пробелов в затронутом файле (в случае выше это wp-config.php)
Решение проблемы:
- Вам нужно будет удалить все пробелы. Для устранения ошибки нужно:
- Скачать затронутый файл (например, wp-config.php) с помощью файлового менеджера или FTP
- Открыть файл в вашем любимом редакторе кода (например, Notepad++)
- Удалить все пробелы перед первым <?php (первый <?php должен находиться в первой строке)
- Удалить все пробелы после закрывающего ?>
- Сохранить файл.
На сайте возникли временные проблемы технического характера
Данное уведомление является внутренним сообщением WordPress, свидетельствующим о наличии ошибок в скриптах вашего сайта.
Чтобы узнать причины ошибки, в начало файла .htaccess добавьте директиву:
где user — ваш логин, domain.ru — адрес вашего сайта.
Затем повторно обратитесь к странице, на которой возникает ошибка. После этого в файле лога появится сообщение о причине возникающей неполадки.
Если после обновления страницы, на которой вы наблюдаете ошибку, файл errors.log не появился, в файле wp-config.php в корневой директории сайта найдите функцию:
и измените её значение на ‘true’, чтобы она имела следующий вид:
Сохраните изменения в файле и обратитесь к странице повторно: на ней появятся ошибки, которые возникли на сервере при обработке запроса к сайту.
Простейшим способом вернуть сайт к рабочему состоянию будет восстановление его содержимого из резервной копии до состояния, когда он работал корректно.
Если восстановление не даст результата, или по каким-то причинам выполнить его невозможно, следует приступить к диагностике причин ошибки, предварительно создав резервную копию файлов и баз данных.
Подробнее ознакомиться с информацией о возникающих ошибках вы можете в инструкции.
Наиболее популярные ошибки, возникающие при работе с системой WordPress, мы рассмотрим ниже.
См. также:See Also
Поддержка браузера для служб Reporting Services и Power ViewBrowser Support for Reporting Services and Power ViewСправочник по ошибкам и событиям (службы Reporting Services)Errors and events (Reporting Services)Устранение неполадок с извлечением данных с помощью отчетов служб Reporting ServicesTroubleshoot Data Retrieval issues with Reporting Services ReportsУстранение неполадок с подписками и доставкой служб Reporting ServicesTroubleshoot Reporting Services Subscriptions and Delivery
Нужна помощь? Майкрософт: вопросы и ответы, Stackoverflow, Отзывы о продукте SQL ServerNeed help? Microsoft Q & A, Stackoverflow, SQL Server product feedback
Частичная проблема
Иногда подобная неприятность возникает частично. В хранилище пропали определенные таблицы или стали недоступны. Чтобы убедиться в точности этой неполадки, достаточно перейти в панель администратора. При повторном возникновении проблемы нужно проверять БД.
Чтобы восстановить её, переходим к файлику wp-config.php. Сюда нужно внести дополнительную команду: define(‘WP_ALLOW_REPAIR’, true);. Теперь нужно перейти в специальное меню site.com/wp-admin/maint/repair.php. На месте site.com указываете ваш ресурс. После появится окно с восстановлением.
В нем желательно выбрать не просто восстановление, но и оптимизацию. Процесс занимает несколько минут. После завершения необходимо будет убрать команду из файла wp-config.php.
Как исправить поврежденную БД в WordPress
Есть очень простой трюк, который позволит определить, стала ли поврежденная БД причиной ваших проблем:
Попытайтесь залогиться в вашей панели wp-admin.
Если сообщение об ошибке изменится на что-то вроде “One or more database tables are unavailable», то возможно БД нуждается в починке.
Это значит, что виновата поврежденная база данных, а не разорванная связь с БД. С другой стороны, если сообщение не изменится, то можете спокойно переходить к следующему шагу.
Чтоб исправить поврежденную базу данных, вам нужно сделать две вещи:
- Добавьте кодовый сниппет в ваш wp-config.php, чтоб включить инструмент восстановления
- Запустите инструмент восстановления
Прежде всего, используйте какую-либо FTP-программу или файловый менеджер cPanel, чтоб отредактировать ваш wp-config.php. Я думаю проще использовать файловый менеджер.
Найдите иконку файлового менеджера в cPanel, а затем выберете сайт, на котором появилась ошибка.
Затем просто кликните на wp-config.php и выберете опцию Edit (редактировать):
Вставьте эту строку кода в самый низ:
define(‘WP_ALLOW_REPAIR’, true);
Затем вбейте в адресную строку это:
Ваш домен.com/wp-admin/maint/repair.php
Кликните на кнопку Repair Database, после чего WordPress вернет ваш сайт к его нормальному состоянию.
После запуска процесса восстановления, вам нужно будет убрать ранее добавленный код из вашего wp-config.php, так как эта функция не должна быть включена все время.
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.
Отсутствует файл/директория для работы скрипта
Причиной ошибки может быть отсутствие требуемого для работы системы файла или некорректно установленные на него права:
С помощью раздела «Файловый менеджер» найдите файл, который не удается прочесть.
Убедитесь, что права на файл соответствуют 644. В случае необходимости измените их в столбце «Права».
Если файл отсутствует, восстановите его из резервной копии.
Если файл найти не удается, и он также отсутствует в резервных копиях, загрузите «чистый» образ используемой на вашем сайте версии WordPress с официального сайта, найдите необходимый файл и разместите его на сайте.
Узнать версию WordPress вы можете на главной странице административной части вашего сайта domain.ru/wp-admin/index.php в блоке «На виду».
При отсутствии доступа в административную часть вы можете узнать используемою версию в файле /home/user/domains/domain.ru/public_html/wp-includes/version.php в строке:
Ошибка синтаксиса кода WordPress
Проведенный мною анализ показал, что не редко встречаются ошибки, допущенные людьми, которые используют сниппеты кода на своих WordPress-сайтах. Когда вы сталкиваетесь с этой ошибкой, то видите что-то вроде этого:
Parse error - syntax error, unexpected $end in /public_html/your_site/wp-content/themes/your-theme/functions.php on line 38
Не стоит впадать в уныние из-за этого, так как сразу понятно, где искать проблему.
Причина появления ошибок синтаксиса:
Как правило, ошибка синтаксиса появляется там, где потерялся или наоборот появился неожиданный символ. В большинстве случаев такое возникает, когда неопытный пользователь пытается редактировать код темы или плагина, но также подобная ошибка появляется, если вы установили новую тему или плагин, содержащий ошибку.
Как исправить ошибку синтаксиса:
- Научиться правильно вклеивать сниппеты кода. Если вы новичок в WordPress, то вас ждет долгий, но веселый путь к освоению этой системы управления контентом. Спешить нет смысла, так что разбирайтесь во всем, не торопясь. Если вы столкнулись с этой ошибкой после вклейки сниппета, то вам нужно научиться вклеивать их в WordPress правильно или сделаете только хуже.
- Исправить кусок неправильного кода. Если эта WordPress-ошибка возникла после обновления плагина или вклейки кода из сети, вы знаете, где искать поломку. Проблема заключается в том, что если ошибка не дает вам попасть на сайт и воспользоваться «Внешний вид -> Редактор (или Плагины -> Редактор)». Это, конечно же, пугает большинство новичков, но не стоит волноваться, так как всегда можно отредактировать файлы WordPress с помощью FTP или Файлового менеджера из вашей cPanel. Найдите поврежденный файл и исправьте код, удалив его или переписав.
- Попробовать другую тему или плагин. Если ошибка появилась после активации новой темы или плагина, то вероятнее всего она вызвана темой или плагиной. Так что вы можете найти альтернативу вашему выбору или связаться с разработчиками, чтоб те решили проблему. В некоторых случаях у вас может не быть возможности авторизоваться в WordPress, и в таком случае можно удалить плагин или тему с помощью FTP.
Возникает ли такая же ошибка для /wp-admin/?
Первое, что вы должно сделать, это убедиться, что одна и та же ошибка возникает как во внешнем интерфейса сайта, так и во внутреннем (wp-admin). Если сообщение об ошибке одинаковое на обеих страницах – “Error establishing a database connection”, – то можете приступать к следующему шагу. Если же у вас возникает другая ошибка на wp-admin, например – “One or more database tables are unavailable. The database may need to be repaired”, – то вам нужно чинить вашу базу данных.
Вы можете это сделать, добавив следующую строку в ваш wp-config.php файл. Добавьте ее перед ‘That’s all, stop editing! Happy blogging’ в wp-config.php:
define('WP_ALLOW_REPAIR', true);
Сделав это, вы сможете увидеть настройки на этой странице:
Помните, что пользователю не нужно входить в систему, чтобы получить доступ к этой функции, пока присутствует данная дефиниция. Все потому, что ее главное предназначение – восстановить поврежденную систему данных. Пользователи зачастую не могут войти в систему, если база данных повреждена. Поэтому как только вы закончили чинить и оптимизировать вашу базу данных, обязательно удалите эту строку из wp-config.php.
Если это не разрешило проблему, или если вы не можете выполнить эту операцию, читайте далее – возможно у вас сработает другой способ.
Что делать с error establishing a database connection
Теперь попробуем разобрать каждый из вариантов и попытаться понять что делать с error establishing a database connection, а также для предотвращения ее появления в будущем.
1. Базы данных нет
Если базы данных больше не существует, вы ее случайно стерли или ее стер хостер, то у вас есть два пути — либо , либо восстановить базу данных 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 и добавьте в него такое содержимое:
Затем обновите конфигурацию сервисов:
Мы не вносили изменения в основной файл юнита потому, что он может быть перезаписан при обновлении, и все наши настройки пропадут, такой путь более безопасный. Проверить применилась ли конфигурация вы можете командой:
Восстановление базы данных
Для восстановления базы данных средствами WordPress понадобится предпринять несколько шагов. Этот способ не требует специальных навыков и позволит восстановить базу относительно просто.
Подключитесь к серверу через файловый менеджер.
Откройте файл wp-config.php в режиме редактирования. Для этого щелкните правой кнопкой мыши на имени файла и выберите редактор кода
Обратите внимание, встроенный в Windows «Блокнот» не подойдет для правки кода, используйте, например, Notepad++.
В последней строчке кода напечатайте: define (‘WP_ALLOW_REPAIR’, true);
Сохраните изменения и закройте файл. Если потребуется, подтвердите перезапись обновленного файла wp-config.php.
Для выполнения следующего шага укажите в адресной строке браузера: имя-сайта/wp-admin/maint/repair.php, где вместо «имя-сайта» наберите название вашего сайта. В результате вы увидите экран с двумя возможными способами восстановления базы: «Починить базу данных» или «Починить и оптимизировать базу данных». Выберите один из вариантов, остальное сделает WordPress, вам нужно лишь немного подождать.
Внимание: После восстановления базы данных обязательно откройте файл wp-config.php еще раз и удалите строчку с кодом, которую вы туда добавили. В противном случае вы рискуете предоставить злоумышленникам полный доступ к вашей базе данных и потерять контроль над сайтом
Белый экран смерти (WSOD)
Знакомое выражение для пользователей Windows, там системная ошибка называется BSOD и отличается синим цветом экрана. Вот только в нашем случае перезагрузкой компьютера проблему не исправить
Обычно, WSOD не возникает на пустом месте и связан, чаще всего, с установкой какого-либо плагина, либо шаблона. Вся неприятность данной ошибки — она блокирует админ-панель и сам сайт. Откатиться можно только при помощи файлового менеджера хостинга или по FTP-протоколу.
Почему возникает WSOD?
- установка плагина или шаблона, несовместимого с текущей версией движка
- конфликт плагина с другим расширением или темой
- обновление старого плагина, вызвавшее ошибку
В любом случае — отследить виновника несложно, если вы только что обновили некий плагин или шаблон. Как быть, если вы обновили одним махом 10-20 плагинов(невероятная ситуация, но все таки возможно и такое)? Очень просто…
-
переименовать каталог с плагинами
(plugins1 к примеру) и создать новый с тем же названием, при этом движок перестанет видеть установленные плагины и можно будет включать их по одному, чтобы найти виновника. -
переименовать текущий используемый шаблон
, не забыв предварительно добавить стандартный шаблон (Twenty любой). После переименования WordPress переключится на доступную стандартную тему и можно будет зайти в админ-панель.
6. Проверьте права доступа к файлам и папкам
На Linux и Unix серверах у файлов и папок есть разрешения, которые разрешают или запрещают разным пользователям доступ к файлам и папкам на сервере. Если у некоторых файлов или папок установлены слишком низкие права, хакеры могут этим воспользоваться и получить какой-то контроль над сайтом.
Права доступа к файлам и папкам
Дайте всем файлам и папкам разрешения 644 и 755. Добавьте этот код в wp-config.php:
Дайте файлу wp-config вручную права 400. Если сайт стал недоступен, измените на 440.
Этим файлам и папкам тоже можно дать пониженные права:
- Корневая папка сайта — /сайт.ru/public_html/ — 750
- .htaccess — /сайт.ru/public_html/.htaccess — 640
- wp-admin/ — /сайт.ru/public_html/wp-admin — 750
- wp-admin/js/ — /сайт.ru/public_html/wp-admin/js/ — 750
- wp-admin/index.php — /сайт.ru/public_html/wp-admin/index.php — 640
- wp-content/ — /сайт.ru/public_html/wp-content — 750
- wp-content/themes/ — /сайт.ru/public_html/wp-content/themes — 750
- wp-content/plugins/ — /сайт.ru/public_html/wp-content/plugins — 750
- wp-includes/ — /сайт.ru/public_html/wp-includes — 750
Maximum execution time of 30 seconds exceeded
Каждый файл PHP имеет максимальное время своего выполнения. Если он не «укладывается» в отведенные настройками рамки, возникает эта ошибка. Чаще всего проблема возникает из-за неправильного функционирования дополнений (функция замыкается в цикле, к примеру). Для решения попробуйте сбросить каталог плагинов и текущий шаблон. Если это не сработает, значит ваш хостинг недостаточно мощный для вашего проекта, с соответствующими выводами.
Как вариант, можно попытаться увеличить максимальное время выполнения:
- измените.htaccess в корневом каталоге WordPress, добавьте строку: php_value max_execution_time 60
- измените, если есть возможность, файл php.ini, добавьте строку: max_execution_time = 60;
Internal Server Error
Сообщение Internal Server Error выводится, когда веб-сервер не смог обработать запрос к сайту из-за ошибок в файле .htaccess. Найдите файл .htaccess в корневой директории сайта, переименуйте его и создайте новый файл с именем .htaccess, в который добавьте стандартные правила WordPress:
Вновь перейдите на сайт и убедитесь, что при переходе по его страницам ошибка не возникает.
Некоторые плагины требуют собственных директив в файле .htaccess. Чтобы правила были добавлены автоматически, последовательно перезапустите все плагины в соответствующем разделе административной панели сайта.
13. Используйте безопасный FTP (SFTP), или SSH
Передача файлов по FTP — быстрый и удобный способ, если вы редактируете или добавляете какие-то файлы на сайт, но этот способ не так безопасен, потому что хакеры могут перехватить FTP подключение.
Использование SFTP более безопасно, потому что передаваемые данные шифруются, и хакерам гораздо сложнее перехватить логин и пароль. SSH — еще один безопасный способ добавления или перемещения файлов сайта.
Если вы не планируете пользоваться FTP, можно удалить все FTP аккаунты, чтобы хакерам нечего было взламывать. На некоторых хостингах можно установить ограниченное время использования FTP аккаунтов, то есть через некоторое определенное время аккаунт будет удален.
Чтобы включить использование SFTP, создайте это подключение на хостинге и добавьте эту строку в wp-config.php перед строкой «Это все, дальше не редактируем».
Вывод
Большинство проблем «Ошибка установления соединения с базой данных» должны были быть решены с тремя шагами выше. Тем не менее, не может быть более неуловимых вопросы, которые продолжают представлять себя таким образом. Вот еще несколько статей, которые могут быть полезны в поимке и нейтрализации причины этой ошибки:
- Частый источник высокого трафика (и, таким образом, снижению производительности и ошибки) является атакой грубой силой, общей установки для WordPress. Вы можете нейтрализовать атаку, следуя гиду, как защитить WordPress от XML-RPC атак.
- Вы можете сэкономить ресурсы сервера путем реализации кэширования на вашей установке WordPress. Есть много плагинов кэширования в Wordpress. Наш учебник, как настроить Redis кэширования ускорить WordPress покажет вам, как настроить особенно производительный Redis-кэш.