Nu am auzit pana acum pe 2015 sa fi fost vreun virus sau exploit de SQL care sa puna “la pamant” sute de site-uri si bloguri WordPress, asa cum a fost in anii trecuti, insa de aproximativ o luna apar lucruri ciudate. Am intalnit mai multe site-uri care pareau ca si-au pierdut conexiunea la baza de date. Error establishing a database connection.
In practica, cand apare o astfel de eroare pe WordPress, primele lucruri care se verifica sunt:
- Daca serviciul mysql ruleaza pe server. Sunt situatii in care din supraincarcarea serverului pe care este hostata baza de date, serviciul mysql / mysqld sa nu mai ruleze. In acest caz se reporneste serviciul din terminal (via ssh sau consola) sau din interfata web daca exista aceasta posibilitate.
- Eroare de configurare user / parola in wp-config.php. In aceasta situatie se verifica daca user-ul baze de date si numele bazei de date sunt corect setate in wp-config.php.
O a treia situatie este coruperea (inexplicabila pana in acest moment) tabelului wp_options din MySQL. Asadar, inainte de a intra in panica daca va gasiti site-ul cu “Error establishing a database connection”, este bine sa verificati daca tabelele din baza de date sunt in regula.
Cum verificam si cum reparam tabelul wp_options din WordPress in caz de este corupt. Marked as crashed and should be repaired.
1. Deschidem phpMyAdmin, mergem pe baza de date a site-ului care este picat si incercam sa accesam tabelul wp_options. In cazul in care acesta este corupt, o sa apara o alerta care ne informeaza acest lucru.
In screen-ul de mai sus este vorba despre tabelul wp_options din baza de date “mobile_apk“. Table ‘sqldb/wp_options’ is marked as crashed and should be repaired.
2. Selectam tabelul wp_options, bifand casuta din dreptul lui, apoi mergem in partea de jos la meniul drop-down (With selected) si selectam “Repair table“.
3. Dupa acest pas din tutorial, asteptati raspunsul la comanda sql si apoi verificati daca site-ul merge in paramentrii normali.
Utilizatorii de WordPress care nu au phpMyAdmin instalat, pot face acest lucru din terminal / serverul pe care este baza de date, executand comenzile:
- verifica daca tabelul wp_options este corupt:
mysqlcheck -c baza_date wp_options -u user_db -p
- repara tabelul wp_options din baza de date “baza_date”:
mysqlcheck -r mydb wp_options -u user -p
Este bine ca dupa ce va asigurati ca site-ul a revenit la normal sa faceti un backup la baza de date. recomand chiar backup-ul periodic. Nu se stie niciodata :)
WHY does this happen, though? I’ve been experiencing this with multiple sites for a client that are all hosted on a Godaddy server. Fixing it is easy enough, but what makes it corrupt in the first place and how do I prevent it from happening again?