Məzmuna keç
Xətalar və çöküşlər

WordPress-də Verilənlər Bazası Bağlantı Xətası: Necə Düzəldilir

WordPress verilənlər bazası bağlantı xətasını düzəldin: wp-config.php faylındakı dörd kimlik məlumatını yoxlayın, verilənlər bazası serverinin işlədiyini təsdiqləyin və zədələnmiş bir cədvəli təmir edin.

Nəşr olundu

Saytınızı açırsınız və hər səhifə — ön tərəf də, wp-admin da — tək bir boz cümlə ilə əvəzlənir: Verilənlər bazası ilə bağlantı qurularkən xəta baş verdi. Heç nə göstərilmir, çünki göstərilə bilmir. WordPress bir səhifə qurmağa qədər belə çatmadı.

Bunu tez həll etməyə imkan verən zehni model belədir. WordPress bütün məzmununuzu — yazılar, səhifələr, parametrlər, istifadəçilər — fayllarda yox, MySQL verilənlər bazasında saxlayır. Hər sorğuda wp-config.php faylından dörd giriş məlumatını oxuyur, həmin verilənlər bazasına qoşulur və ehtiyacı olanı çəkir. Bu xəta o bağlantının cəhd edildiyi və rədd edildiyi deməkdir. Həll, niyə rədd edildiyini müəyyən etməkdir və yalnız üç ehtimal var.

Ehtimal sırasına görə üç səbəb

  1. wp-config.php içindəki səhv bir kimlik məlumatı — adətən server dəyişməyin nəticəsi.
  2. Verilənlər bazası serveri sönülü və ya həddindən artıq yüklü — adətən sizin tərəfinizdə heç nəyin dəyişməməsinin nəticəsi.
  3. Verilənlər bazası zədələnib — daha az rast gəlinir və özünü fərqli şəkildə büruzə verir.

Bu ardıcıllıqla irəliləyin.

Addım 1: dörd kimlik məlumatını yoxlayın

Saytınızın kök qovluğundakı wp-config.php faylını SFTP və ya hostinqinizin fayl meneceri ilə açın. Bağlantını dörd sətir təyin edir:

define( 'DB_NAME', 'your_database_name' );
define( 'DB_USER', 'your_database_user' );
define( 'DB_PASSWORD', 'your_database_password' );
define( 'DB_HOST', 'localhost' );

Bunların hər biri hostinqinizin təyin etdiyi dəyərlə tam olaraq eyni olmalıdır. Hostinq idarə panelinizin verilənlər bazası bölməsini açın (cPanel-də bu, “MySQL Databases” bölməsidir) və simvol-simvol müqayisə edin:

  • DB_NAME — hostinqlər çox vaxt adın əvvəlinə hesabınızın prefiksini əlavə edir, məsələn cpaneluser_wpdb. Prefiks adın bir hissəsidir.
  • DB_USER — eyni prefiks qaydası keçərlidir və istifadəçinin sadəcə mövcud olması yetmir, həmin verilənlər bazasına təyin edilmiş olması lazımdır.
  • DB_PASSWORD — açıq-aydın ən çox rast gəlinən səbəbkar. Əmin deyilsinizsə, idarə panelindən sıfırlayıb yeni dəyəri yapışdırın. Sonda qalan boşluğa və ya ağıllı dırnağa diqqət edin.
  • DB_HOSTlocalhost olduğunu güman etməyin. Bir çox hostinq mysql.yourhost.com kimi bir ünvana, bəzən də :port şəkilçisinə sahib xüsusi verilənlər bazası serveri istifadə edir. Düzgün dəyəri idarə paneli göstərir.

Bu dörd dəyər məhz bu faylda yerləşdiyi üçün, təmiz və dırnaqları düzgün yerləşdirilmiş wp-config.php faylını yenidən yaratmağın ən təhlükəsiz yolu wp-config.php generatorudur — dörd verilənlər bazası sahəsini doldurun və nəticəni köhnə bloğun üzərinə yapışdırın.

Bu addım tək başına, demək olar ki, hər köçürmədən sonra xətanı düzəldir; çünki köhnə serverdə düzgün olan kimlik məlumatları yeni serverdə səhv olur.

Addım 2: verilənlər bazası serverinin həqiqətən işlədiyini təsdiqləyin

Kimlik məlumatları düzgündürsə və xəta davam edirsə — xüsusən də sizin tərəfinizdə heç bir dəyişiklik olmadan öz-özünə ortaya çıxıbsa — şübhəli verilənlər bazası serverinin özüdür.

Paylaşılan hostinqdə bu adi haldır və adətən müvəqqətidir: MySQL xidməti trafik artımı zamanı boğulur və ya hesab başına bağlantı limitinə çatıb yeni bağlantıları rədd etməyə başlayır. Tipik olaraq bir neçə dəqiqə içində toparlanır. Sərt bir şey etməzdən əvvəl qısa müddət gözləyib yenidən yükləyin.

Kimlik məlumatlarının WordPress-dən asılı olmayaraq ümumiyyətlə keçərli olub-olmadığını yoxlamaq üçün wp-config.php faylının yanına kiçik bir skript qoyun:

<?php
$link = mysqli_connect('localhost', 'your_database_user', 'your_database_password');
if (!$link) {
    die('Connection failed: ' . mysqli_connect_error());
}
echo 'Connected — the server and credentials are fine.';

Gerçək DB_HOST, DB_USERDB_PASSWORD dəyərlərinizi istifadə edin. Connected yazarsa giriş məlumatlarınız işləyir və problem başqa yerdədir (zədələnmiş verilənlər bazası, Addım 3). Bağlantı xətası yazarsa mesaj hansı olduğunu bildirir: “Access denied” səhv istifadəçi və ya parol deməkdir; “Can’t connect to MySQL server” səhv server və ya həqiqətən sönülü xidmət deməkdir — hostinqinizlə əlaqə saxlama vaxtıdır. İşiniz bitən kimi skripti silin.

Addım 3: zədələnmiş verilənlər bazasını təmir edin

Zədələnməni bağlantı problemindən ayıran bir əlamət var: ön tərəf yüklənir, amma wp-admin xətanı göstərir və ya əksinə. Bağlantı həqiqətən rədd edilsəydi, ikisi də ölü olardı. Belə bir ayrılma zədələnmiş cədvəllərə işarə edir.

WordPress-in daxili təmir aləti var. wp-config.php faylına, redaktəni dayandırmağı deyən şərhin üstünə bir sətir əlavə edin:

define( 'WP_ALLOW_REPAIR', true );

Sonra bu URL-i birbaşa brauzerinizdə açın:

https://yoursite.com/wp-admin/maint/repair.php

O, giriş etmədən yüklənir — kilidlənmiş qalmış ola biləcəyiniz üçün mətləb budur — və “Repair Database” ilə “Repair and Optimize Database” seçimlərini təklif edir. İşə salın.

Sonra həmin sətri wp-config.php faylından dərhal silin. O sətir orada olduğu müddətdə internetdəki hər kəs bu URL-ə daxil olub verilənlər bazanızda təmir işə sala bilər. Bu, könüllü təmizlik deyil; az əvvəl açdığınız bir dəliyi bağlamaqdır.

Addım 4: təmir belə qoşula bilmədikdə

Təmir səhifəsinin özü bağlantı xətasını göstərirsə, təmir ediləcək bir şey yoxdur — verilənlər bazasına ümumiyyətlə çatmaq olmur, deməli Addım 1 və ya Addım 2-yə qayıtmısınız. Bu nöqtədə etibarlı hərəkət verilənlər bazasını hostinqinizin ən son yedəyindən bərpa etməkdir. Əksər idarə panelləri avtomatik gündəlik verilənlər bazası anlıq görüntüləri saxlayır; dünən gecədən bir bərpa, qoşula bilmədiyiniz bir zədələnməni qovalamaqdan demək olar ki, həmişə daha sürətli və təhlükəsizdir.

Rahatlıqla nəzərə almaya biləcəyiniz məsləhətlər

“Sadəcə WordPress-i yenidən qur.” Bu xəta nüvə faylları ilə yox, verilənlər bazası bağlantısı ilə bağlıdır. Yenidən qurmaq, düzgün işləyən elə həmin faylları əvəzləyir və pozulmuş heç nəyə toxunmur.

“PHP yaddaş limitini artır.” Yaddaşın tükənməsi, fərqli mesajı olan başqa bir xətadır. Limiti qaldırmaq, rədd edilmiş bir verilənlər bazası bağlantısı üçün heç nə etmir və yalnız kimlik məlumatlarını heç yoxlamadığınızı gizlədir.

“Keşi təmizlə.” Xəta, hər hansı keş bir səhifə təqdim edə bilməmişdən əvvəl PHP içində baş verir. Bağlantı rədd edilərkən keşi təmizləmək heç nəyi dəyişmir; yalnız sayt geri qayıtdıqdan sonra etməyə dəyər.

“Düzəltmək üçün verilənlər bazasını birbaşa redaktə et.” Bağlantının işlədiyini belə təsdiqləmədən cədvəlləri əllə redaktə etmək üçün phpMyAdmin-ə əl atmaq, müvəqqəti bir kəsintinin daimi məlumat itkisinə çevrilmə yoludur. Əvvəlcə bağlantını təsdiqləyin; verilənlərə ən son və yalnız bir yedəkdən toxunun.

Hələ də ilişib qalmısınız?

Kimlik məlumatları test skripti ilə təsdiqlənir, server işləyir, təmir qoşulur və xəta bildirmir, amma sayt hələ də mesajı göstərirsə, qalan şübhəli, verilənlər bazası ilə öz bağlantısı üzərindən danışan bir plagindir — köhnə bir server ünvanını saxlamış bir keşləmə və ya verilənlər bazası plagini. Bunu istisna etmək üçün wp-content/plugins qovluğunu SFTP üzərindən plugins-off olaraq yenidən adlandırın. Xəta yox olarsa, geri qayıdana qədər plaginləri bir-bir yenidən əlavə edin.

FAQ

Suallar

WordPress-də verilənlər bazası bağlantı xətası nə deməkdir?

Bu o deməkdir ki, WordPress yükləndi, wp-config.php faylını oxudu, orada tapdığı məlumatlarla MySQL verilənlər bazanıza qoşulmağa çalışdı və rədd edildi. Xəta hər hansı səhifə qurulmadan əvvəl baş verir; bütün saytın tək sətirlik boş bir mətnə çevrilməsinin səbəbi budur. Ya bir kimlik məlumatı səhvdir, ya verilənlər bazası serveri sönülü və ya həddindən artıq yüklüdür, ya da verilənlər bazasının özü zədələnib.

WordPress verilənlər bazası girişini hansı fayl saxlayır?

wp-load.php faylının yanında, saytınızın kök qovluğundakı wp-config.php. Bağlantını dörd sabit təyin edir: DB_NAME, DB_USER, DB_PASSWORD və DB_HOST. Onlardan hər hansı birindəki bircə səhv simvol məhz bu xətanı yaradır və bu dəyərlərin köhnəlməsinin ən çox rast gəlinən yolu server köçürmələridir.

Heç nə dəyişmədiyim halda xəta niyə ortaya çıxdı?

Demək olar ki, həmişə saytınızdan yox, verilənlər bazası serverindən. Paylaşılan hostinqdə MySQL xidməti trafik artımı zamanı həddindən artıq yüklənir və ya bağlantı limitinə çatıb yeni bağlantıları rədd edir. Adətən bir neçə dəqiqə içində öz-özünə düzəlir. Təkrarlanmağa davam edirsə soruşulacaq yer hostinqinizdir, ya da paketiniz sizə daralıb.

DB_HOST həmişə localhost olurmu?

Xeyr və belə olduğunu güman etmək çoxlu köçürmədən sonra bu xətaya səbəb olur. Bir çox hostinq verilənlər bazasını ayrıca serverdə işlədir, ona görə DB_HOST mysql.yourhost.com kimi bir ünvan və ya portlu bir IP olur. Hostinq idarə panelinizin verilənlər bazası bölməsi düzgün dəyəri göstərir. Varsa :port şəkilçisi ilə birlikdə dəqiq köçürün.

Zədələnmiş WordPress verilənlər bazasını necə təmir edim?

wp-config.php faylına define( 'WP_ALLOW_REPAIR', true ); sətrini əlavə edin, sonra brauzerdə yoursite.com/wp-admin/maint/repair.php ünvanını açıb təmiri işə salın. Giriş tələb etmir; işiniz bitən kimi həmin sətri silməli olmağınızın səbəbi məhz budur — onu saxlasanız hər kəs bir təmiri işə sala bilər. Ümumiyyətlə qoşula bilmirsə, problem zədələnmə deyil, kimlik məlumatları və ya serverdir.

Niyə yalnız wp-admin xəta göstərir, ön tərəf isə yüklənir?

Bu ayrılma bağlantı probleminə yox, zədələnmiş verilənlər bazasına işarə edir, çünki bağlantı ön tərəf üçün açıq-aydın işləyir. WordPress bəzən admin tərəfini ayrıca işarələyir. Əvvəlcə daxili verilənlər bazası təmirini işə salın; bu həll etməzsə, verilənlər bazasını hostinqinizin ən son yedəyindən bərpa edin.