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.

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 Încearcă această https://tommcfarlin.com/installing-wp-cli-with-mamp/ înainte să modifici hostul în wp-config.php
. Ar trebui să funcționeze.

@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".

Am aflat că necesită nu doar 127.0.0.1
ci și portul, care pentru MAMP PRO este 127.0.0.1:8889

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.

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

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.

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

da, dar nu există fișierul wp-cli.phar
în directorul rădăcină al WP.

Aici puteți găsi mai multe informații despre cum să instalați wp-cli.phar: (https://wp-cli.org/)

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)"

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ă.

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ă.

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.

Î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).
