Kako srediti grešku na WordPress sajtu: “Error Establishing A Database Connection”

Piše: Damir Bodor, 21. Dec 2014.

Koliko puta vam se samo desilo da kada ukucate adresu svog websajta, da vidite ono što ne biste poželeli ikada da vidite? Prazan prozor i samo jednu rečenicu "Error Establishing A Database Connection"??
Što duže vam je sajt nedostupan, veća je verovatnoća da ćete izgubiti potencijalne mušterije, ili posetioce koji su "sasvim slučajno" naleteli na vaš sajt (a ne znaju koliko se ustvari trudite da doprete do njih).
U ovom članku ćemo Vam objasniti šta znači ova greška i dati nekoliko predloga kako je ustvari možete ispraviti.

Prvo ćemo objasniti kako se ustvari websajt prikazuje uz pomoć WordPress-a pa vam možda postane i jasnije šta je ustvari ova greška koja vam se prikazuje.

WordPress je napisan u PHP programskom jeziku uz pomoću kog “izvlači” informacije koje su mu potrebne iz MySQL baze podataka gde su sve informacije zapisane.

U suštini svaki put kada se stranica na vašem web sajtu otvori ona se generiše iznova. Uz pomoć PHP koda dolazi se do podataka u bazi i povlače se potrebni podaci. WordPress koristi “query” kako bi generisao naslov posta, drugi query se koristi kako bi prikazao autor posta, treći query prikazuje datum objave, itd.

Kada se pojavi poruka “Error Establishing A Database Connection” to znači da vaš PHP kod ne može da se poveže sa MySQL bazom i povuče informacije iz nje koje su mu potrebne da prikaže stranicu. Iz ovog razloga i vidite praznu stranicu sa porukom o grešci jer ne možete da se povežete sa bazom i vidite pravi sadržaj koji ste zatražili.

Šta prouzrokuje ovu grešku?

Značenje ove greške je jasno, ali razlog zašto se ona ustvari prikazuje u većini slučajeva mnogima nije jasan.

Postoji veliki broj potencijalnih razloga zašto se ustvari ova greška dešava, ali najčešći razlozi prikaza ove greške su:

  • Login podaci koji se koriste za konektovanje na bazu su pogrešni. Vaša baza ima drugačije login informacije (username i password) koje ste nedavno menjali, a PHP kod pokušava da se konektuje sa starim login informacijama.
  • Oštećena baza podataka. Postoji bezbroj razloga kako može doći do oštećenja baze podataka, i to od lošeg plugina preko slučajnog brisanja podataka iz baze… Zato radite backup što češće i radite duple kopije backupa i na svom računaru.
  • Radovi na serveru. Iako je ovo retkost, može da se desi da su u toku radovi na serveru pa je MySQL servis trenutno nedostupan, ali u većini slučajeva “down time” traje nekoliko desetina sekundi ili par minuta pa je najbolje pokušati otvaranje stranice kroz 5-10 minuta.

Šta raditi sa toliko mogućnosti za grešku, kako rešiti ovaj problem?

Rešavanje greške “Error Establishing a Database Connection”

Odrediti gde se greška pojavljuje

Ukoliko se websajt prikazuje normalno vašim posetiocima, a greška se javlja kada pokušate da pristupite admin delu? Ili se sajt uopšte ne prikazuje, a dobijate nešto drugačiju grešku kada pokušate da se ulogujete u admin deo: “One or more database tables are unavailable. The database may need to be repaired.”

Sve ovo su indikatori da je došlo so oštećenja baze.

Srećom WordPress ima svoje načine da pokuša da popravi bazu, ali je potrebno uključiti ovu opciju kako bi mogli da je iskoristite. Kako bi ovo uradili potrebno je da otvorite wp-config.php fajl u kom su sadržane sva instalaciona podešavanja.

Fajl wp-config.php možete naći u public_html direktorijumu kome možete pristupiti preko FTP ili preko file managera u Direct Admin kontrolnom panelu.

Kada otvorite fajl potrebno je da dodate sledeću liniju koda na samom kraju:


	define( 'WP_ALLOW_REPAIR', true );

Ova linija koda omogućiće vam optimizaciju i “popravku” baze, tako što ćete otići na sledeću web adresu www.mojdomen.com/wp-admin/maint/repair.php (potrebno je da zamenite web adresu mojdomen.com sa adresom vašeg websajta).

database-repair

Nakon što posetite gore pomenuti link prikazaće vam se poruka sa slike. Imaćete dve ponuđene dve opcije, da popravite bazu ili da je popravite i optimizujete. Možete odabrati bilo koju opciju, samo imajte u vidu da ukoliko odaberete da i optomizujete bazu, ceo proces trajaće nešto duže.

Nakon završenog procesa, pokušajte otvoriti svoj websajt. Ukoliko vam ovo nije pomoglo da sresite problem, pređite na sledeći korak.

Provera login podataka MySQL baze u wp-config fajlu

Ukoliko vam prethodni korak nije pomogao da otklonite problem, potrebno je da proverite podešavanja vezana za MySQL bazu u wp-config.php fajlu.

Na početku wp-config.php fajla biće vam prikazani podaci za konektovanje sa bazom slično ovim:


	/** The name of the database for WordPress */
	define( 'DB_NAME', 'database_name_here' );
	 
	/** MySQL database username */
	define( 'DB_USER', 'username_here' );
	 
	/** MySQL database password */
	define( 'DB_PASSWORD', 'password_here' );
	 
	/** MySQL hostname */
	define( 'DB_HOST', 'localhost' );

 

Kao što vidite, potrebno je četiri informacije kako bi bilo moguće ostvariti konekciju sa MySQL bazom:

  • ime MySQL baze (“DB_NAME”)
  • username (“DB_USER”)
  • password (“DB_PASSWORD”)
  • database host (“DB_HOST”)

Proverite više puta sve informacije jer jer dovoljan i jedan space viška da se pojavi problem i neće biti moguće povezati se sa bazom.

Provera naziva baze

Ukoliko niste sigurni u vezi ovih podataka, možete ih proveriti tako što ćete se ulogovati u Direct Admin kontrolni panel tako što ćete otići na sledeću web adresu www.mojdomen.com:2222 (potrebno je da zamenite web adresu mojdomen.com sa adresom vašeg websajta) i pronaći PHP MyAdmin.
Nakon što se ulogujete u PHP MyAdmin sa leve strane strane biće Vam prikazane sve baze. Pronađite bazu koja vam je navedena kao baza koja se koristi za vaš WordPress sajt i uverite se da je ime baze ispravno upisano u wp-config.php fajl.

Provera login informacija (username i password)

U ovom članku prikazaću vam dva rešenja za testiranje login informacija:

  • Kreiranje jednostavnog .php fajla koji ćemo koristiti da testiramo login informacije koje imamo upisane u wp-config fajlu
  • Kreiranje novog usera za bazu i unošenje novih login informacija u wp-config fajl

Prvo rešenje – testiranje postojećih login informacija

Kreirajte novi fajl u root direktorijumu i nazovite ga mysqltest.php i unesite sledeći kod:


<?php
$servername = "localhost";
$username = "ime_baze";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

 

Nakon što ste napravili fajl i ubacili kod, iz browsera idite na link www.mojsajt.com/mysqltest.php (potrebno je da unesete svoj domen umesto mojdomen.com) biće Vam prikazana da je konekcija uspela ili ukoliko su podaci netačni biće vam prikazana greška.

Ukoliko dobijete prikaz greške, to znači da su login informacije koje imate netačne i potrebno je da pređete na sledeći korak.

Drugo rešenje – kreiranje novog usera i passworda za povezivanje sa MySQL bazom

Kreiranje novog usera vrši se iz Direct Admin kontrolnog panela, i to na www.mojdomen.com:2222 (potrebno je da zamenite web adresu mojdomen.com sa adresom vašeg websajta) i nakon toga potrebno je da pronađete deo sa MySQL bazama.

U ovom delu možete dodati novog usera i odrediti mu password i odrediti kojoj bazi dodajete usera i te informacije unosite u wp.config.php fajl

Svi AdiSwitch web hosting paketi uključuju preko 120 najkorišćenijih i popularnih skripti i CMS sistema među kojima je i WordPress i koje je moguće instalirati sa samo jednim klikom uz pomoć Installatron instalera, kao i odrediti automatski backup i na taj način se zaštiti se od potencijalno oštećene baze potpuno besplatno.

Nadam se da vam je ovaj članak pomogao da rešite problem sa famoznom greškom “Error Establishing a Database Connection”.

Ukoliko imate dodatnih komentara ili želite da podelite svoja iskustva oko sređivanja ove greške pišite nam u komentarima.

.col-md-6 {margin-left: -15px !important;}