Сайтът ви показва само един ред: „Грешка при свързване с базата данни“. WordPress не е успял да отвори базата, в която живеят страниците, настройките и акаунтите ви. Съдържанието ви обикновено е непокътнато: това ръководство обяснява как да откриете коя от четирите възможни причини е в сила и как да я поправите.
wp-config.php. Съдържанието ви обикновено е непокътнато.DB_NAME, DB_USER, DB_PASSWORD и DB_HOST от wp-config.php с тези в панела на хостинг доставчика.При всяка показана страница WordPress отваря връзка към своята база данни MySQL или MariaDB с четири данни, записани в wp-config.php, в корена на сайта:
define( 'DB_NAME', 'ime_na_bazata' );
define( 'DB_USER', 'potrebitel' );
define( 'DB_PASSWORD', 'parola' );
define( 'DB_HOST', 'localhost' );
„Грешка при свързване с базата данни“ означава, че тази връзка не е успяла. Четири причини я пораждат: данни за достъп, които вече не съвпадат, спрян или недостъпен сървър за бази данни, претоварен сървър или повредена база данни. Следващите раздели ги преминават от най-лесната за проверка до най-рядката.
Ако причината е в сървъра, отворете тикет при хостинг доставчика, като посочите часа, в който е започнала повредата, и точното съобщение. Междувременно сайтът може да остане такъв, какъвто е.
Това е най-честата причина след преместване на сайта, смяна на паролата на базата в панела на хостинг доставчика или възстановяване. Сравнете четирите стойности от wp-config.php с раздела за бази данни при вашия хостинг доставчик:
DB_NAME и DB_USER: много хостинг доставчици им добавят като префикс името на акаунта (akaunt_wordpress). Префиксът е част от името.DB_PASSWORD: при съмнение задайте нова парола за потребителя в панела и я въведете във файла.DB_HOST: localhost при много хостинг доставчици, но не при всички. Някои дават име на сървър или адрес, понякога последван от порт (:3306). Точната стойност е посочена в панела.Парола, която съдържа апостроф ('), прекъсва PHP низа, който я огражда в wp-config.php. Поставете пред апострофа обратна наклонена черта (\') или изберете парола без апостроф.
WordPress показва общо съобщение. MySQL казва точно какво не е наред. Два начина да го попитате със стойностите от wp-config.php:
mysql -h localhost -u potrebitel -p ime_na_bazata
С WP-CLI wp db check чете директно wp-config.php и проверява таблиците с тези данни за достъп.
Качете този файл в корена на сайта под име, което е трудно за отгатване, отворете го в браузъра, след това веднага го изтрийте: той съдържа паролата на базата.
<?php
mysqli_report(MYSQLI_REPORT_OFF);
$vrazka = @mysqli_connect('localhost', 'potrebitel', 'parola', 'ime_na_bazata');
echo $vrazka ? 'Връзката е успешна' : 'Неуспех: ' . mysqli_connect_error();
Първият ред е важен: от PHP 8.1 насам неуспешна връзка по подразбиране хвърля изключение и страницата би останала бяла, вместо да покаже съобщението на MySQL.
| MySQL отговаря | Причината | Поправката |
|---|---|---|
Access denied for user 'potrebitel'@'localhost' (using password: YES) | Двойката потребител и парола е отхвърлена или потребителят няма право да се свързва от този хост. | Задайте отново паролата в панела и я въведете в DB_PASSWORD; проверете DB_USER. |
Access denied for user 'potrebitel'@'localhost' to database 'ime_na_bazata' | Потребителят се свързва, но няма права върху тази база. | Свържете потребителя с базата в панела на хостинг доставчика, с всички привилегии. |
Unknown database 'ime_na_bazata' | Връзката работи, но няма база с това име. | Поправете DB_NAME, включително префикса; проверете дали базата още съществува. |
Too many connections | Сървърът е достигнал максималния брой едновременни връзки. | Вижте раздела за периодичните грешки. |
Connection refused или No such file or directory (код 2002 от PHP), Can't connect to MySQL server (от командния ред) | На този адрес не отговаря сървър: спрян сървър или грешен DB_HOST. | Проверете DB_HOST в панела; ако стойността е вярна, уведомете хостинг доставчика. |
Връзката е успешна | Данните за достъп са верни. | Търсете в самата база данни: следващия раздел. |
Когато данните за достъп са верни, но има повредени таблици, публичният сайт показва същото съобщение за грешка при свързване, а администрацията показва по-точно съобщение: „Една или повече таблици от базата данни не са на разположение. Базата данни може да се нуждае от поправка.“ WordPress предоставя инструмент за това. Добавете този ред в wp-config.php:
define( 'WP_ALLOW_REPAIR', true );
След това отворете https://www.vashiyat-sayt.com/wp-admin/maint/repair.php и пуснете „Поправка на базата от данни“. Премахнете реда веднага след края на поправката: докато той е там, тази страница е достъпна за всеки, без вход.
Преди всяка поправка направете експорт на базата (wp db export или раздела за експорт в phpMyAdmin). Ако поправката не успее, хостинг доставчикът може да възстанови базата от своите резервни копия.
Грешка, която се появява в определени часове и после изчезва сама, сочи претоварен сървър, а не грешна настройка. Най-честите причини:
wp-login.php или xmlrpc.php, видими в журналите за достъп на хостинг доставчика.Поправките: блокирайте злоупотребяващите опити за вход, инсталирайте кеш на страници, изключете xmlrpc.php, ако никое приложение не го използва, и поискайте от хостинг доставчика журналите за периода с грешки.
Със Serenity by Simafri изработваме вашия професионален уебсайт, хостваме го, защитаваме го и го поддържаме актуален. Вие ни пишете, ние се грижим за всичко. Домейн име и служебна поща включени.
Обикновено съдържанието е непокътнато. Съобщението казва, че WordPress не е успял да се свърже с базата, а не че базата е изчезнала. Ако phpMyAdmin все още показва таблиците на сайта, страниците, публикациите и настройките ви са на място.
Защото новият хостинг използва други данни за достъп до базата: име на базата, потребител, парола и понякога адрес на сървъра. Въведете стойностите от новия панел в DB_NAME, DB_USER, DB_PASSWORD и DB_HOST, в wp-config.php.
Преинсталирането на WordPress оставя непроменени данните за достъп в wp-config.php и състоянието на сървъра за бази данни, а те са причините за това съобщение. Тествайте първо данните за достъп, след това състоянието на сървъра, после целостта на таблиците.
От претоварване, а не от настройка: твърде много едновременни връзки, пик на трафика или роботи. Журналите за достъп и потреблението на ресурси в панела на хостинг доставчика показват какво е ставало в момента на грешката.
Simafri
Да поговорим за Вашия проект
Кажете ни с няколко думи от какво имате нужда: отговаряме Ви бързо.
Благодарим! Вашето запитване е изпратено. Ще се свържем с вас скоро.
Предпочитате имейл? Пишете ни на support@simafri.com.