WP CLI "Eroare la conectarea cu baza de date" în localhost (MAMP)
Primesc această eroare când încerc să creez ceva cu WP CLI:
Eroare la conectarea cu baza de date. Acest lucru înseamnă fie că informațiile de utilizator și parolă din fișierul `wp-config.php` sunt incorecte sau nu putem contacta serverul bazei de date la `localhost`. Acest lucru ar putea însemna că serverul bazei de date al hostului este căzut.
Dar pot deschide site-ul cu link-ul: http://localhost:8888/projectname
Aveți vreo idee?
În MAMP Pro a trebuit să bif și opțiunea "Permite accesul la MySQL prin rețea" pentru ca aceasta să funcționeze.
Nick M
Am încercat asta dar nu a funcționat. Folosesc șablonul Bedrock. Am verificat de nenumărate ori fișierul wp-config și .env, am verificat și setările din MAMP de mai multe ori. Am depanat fișierul wb-db.php.
Apoi am eliminat simbolul # de la linia DB_HOST din fișierul .env și acum totul funcționează corespunzător.
Tom
@Tom Încearcă această https://tommcfarlin.com/installing-wp-cli-with-mamp/ înainte să modifici hostul în wp-config.php. Ar trebui să funcționeze.
Maria Daniel Deepak
@NickM - Înțeleg că acesta este un comentariu vechi, dar sper să vezi acest răspuns. Unde se află opțiunea "Permite accesul la MySQL prin rețea"? Am MAMP Pro 4.4.1 și nu am reușit să găsesc această setare pe care o menționezi. ACTUALIZARE: Am găsit-o, în serviciul MySQL. Din păcate, în cazul meu este deja bifată, împreună cu "numai de pe acest Mac".
omega33
Am aflat că necesită nu doar 127.0.0.1 ci și portul, care pentru MAMP PRO este 127.0.0.1:8889
omega33
Am vrut să adaug aici că acest lucru este în general corect, dar este nevoie de o mică ajustare pentru devKinsta dacă rulezi asta în loc de MAMP. Poți găsi informațiile despre gazda bazei de date în panoul devKinsta și apoi să faci modificările respective ip:port în wp config, dar apoi trebuie să revii la gazda originală devKinsta pentru a funcționa din nou ca site. Poate există o soluție mai bună, dar asta funcționează pentru mine.
jakeatwork
Pentru mine, soluția a fost să modific setarea pentru DB_HOST în 127.0.0.1:8889 în loc de localhost în fișierul wp-config.php, și de asemenea să bifăm caseta "Permite accesul la MySQL din rețea" în setările MySQL. Stabilirea portului la cel folosit de MAMP Pro pentru baza de date a fost piesa lipsă pe care nu am găsit-o în celelalte răspunsuri. Rezultatele pot varia.
+10 pentru asta. Totuși, sunt curios de ce unii utilizatori trebuie să adauge portul, iar alții nu au nevoie
Jimmy Long
Funcționează. Am câteva site-uri WordPress definite în software-ul WP Local, fiecare folosind un port diferit pentru localhost mysql, și am și site-uri non-WordPress care rulează pe o instanță separată de mysql pe portul implicit 3306 prin MySQL Workbench. WP CLI-ul meu probabil încerca să acceseze portul implicit din MySQL Workbench în loc de portul site-ului WordPress. Așa că adăugarea portului a rezolvat această problemă pentru mine.
Studocwho
Asigurați-vă că utilizați binarul PHP din MAMP. Puteți verifica ce versiune de PHP rulează WP CLI cu:
php wp-cli.phar --info
Pentru a utiliza cea mai recentă versiune de PHP din MAMP, trebuie să modificați profilul bash sau zsh:
PHP_VERSION=$(ls /Applications/MAMP/bin/php/ | sort -n | tail -1)
export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH
Asigurați-vă că reîncărcați profilul:
source ~/.bash_profile
Verificați dacă modificările au fost aplicate corect:
php wp-cli.phar --info
Prima comandă returnează doar eroarea Could not open input file: wp-cli.phar
Felix Eve
da, dar nu există fișierul wp-cli.phar în directorul rădăcină al WP.
Felix Eve
Aici puteți găsi mai multe informații despre cum să instalați wp-cli.phar: (https://wp-cli.org/)
eknows
Pasul 1: verifică dacă serverul tău MySQL rulează Pasul 2: dacă da, atunci poți să te autentifici în MySQL folosind
mysql -u root -p
apoi introdu parola: (trebuie să folosești această comandă din terminal) apoi folosește următoarea comandă pentru a verifica dacă baza de date există:
show databases;
grant all privileges on database_name.* to 'root'@'localhost' identified by 'password';
flush privileges;
exit;
acum editează fișierul wp-config.php și caută
define('DB_NAME', 'db_name');
define('DB_USER', 'root');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');
Acum repornește serverul și încearcă să te autentifici în panoul de control WordPress. Sper că te-a ajutat.
"mysql -u root -p" îmi dă "Access denied for user 'root'@'localhost' (using password: YES)"
Klevis Miho
când ai configurat baza de date mysql, trebuie să fi introdus o parolă. Folosește acea parolă. Dacă nu ai configurat nicio parolă în momentul configurației bazei de date mysql, apasă doar Enter în loc să introduci o parolă.
maverick
Am făcut cum ai scris. Pot să mă conectez la baza de date cu "mysql -u root -p". De asemenea, privilegiile sunt acordate. Dar eroarea încă persistă.
Klevis Miho
Am descoperit că dacă schimb localhost în 127.0.0.1 în wp-config.php, totul funcționează bine... simt că există o problemă mai mare aici.
Craig Wayne
În cazul meu, pe lângă mesajul de eroare menționat anterior, am primit și avertismentele de mai jos:
PHP Warning: mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
PHP Warning: mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
PHP Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/wp-includes/wp-db.php on line 1562
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/wp-includes/wp-db.php on line 1562
PHP Warning: mysql_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
Warning: mysql_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
PHP Warning: mysql_connect(): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
Warning: mysql_connect(): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
Conform acestei întrebări, această problemă apare deoarece setul de caractere implicit pentru MySQL 8.0 este utfmb4.
De fapt, am putut reproduce eroarea prin actualizarea de la MySQL 5.7 la MySQL 8.0.
Am rezolvat problema exportând baza de date, revenind la MySQL 5.7 și reimportând datele. De asemenea, am efectuat teste pe MariaDB 10.3 și funcționează corect.
În cazul meu, a trebuit să fac exact ce a propus eknows în soluția sa (https://wordpress.stackexchange.com/a/313862/172520) ȘI, desigur, să activez accesul la rețea pentru MySQL pe Mac-ul meu (folosind MAMP Pro).
