WP CLI "Eroare la conectarea cu baza de date" în localhost (MAMP)

11 ian. 2018, 12:19:04
Vizualizări: 31.6K
Voturi: 32

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?

1
Comentarii

Iată o altă eroare care apare în linia de comandă pentru aceasta (cel puțin în cazul meu). O adaug în speranța că Google va ajuta persoanele care caută acest lucru + "wp-cli": Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in

jerclarke jerclarke
26 iun. 2021 20:56:06
Toate răspunsurile la întrebare 8
6
51

Accesează fișierul tău wp-config.php și schimbă DB_HOST în 127.0.0.1 în loc de localhost.

Creditul îi revine lui Craig Wayne din comentariile de mai sus.

20 iul. 2018 20:13:01
Comentarii

Î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 Nick M
22 oct. 2018 09:16:51

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
20 nov. 2018 11:45:29

@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 Maria Daniel Deepak
7 aug. 2019 11:35:03

@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 omega33
30 oct. 2020 05:26:42

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

omega33 omega33
30 oct. 2020 05:34:26

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 jakeatwork
28 apr. 2023 14:38:44
Arată celelalte 1 comentarii
2
15

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.

1 mai 2019 23:41:20
Comentarii

+10 pentru asta. Totuși, sunt curios de ce unii utilizatori trebuie să adauge portul, iar alții nu au nevoie

Jimmy Long Jimmy Long
7 feb. 2024 08:14:46

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 Studocwho
30 sept. 2024 18:00:39
5

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
11 sept. 2018 11:15:54
Comentarii

Prima comandă returnează doar eroarea Could not open input file: wp-cli.phar

Felix Eve Felix Eve
18 sept. 2018 11:19:28

Ai rulat comanda în folderul root al WordPress?

eknows eknows
18 sept. 2018 13:16:10

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

Felix Eve Felix Eve
18 sept. 2018 13:58:10

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

eknows eknows
20 sept. 2018 08:53:45

@FelixEve dacă în timpul instalării ai mutat wp-cli.phar în /usr/local/bin/wp, poți rula wp --info în schimb: PHP binary afișat ar trebui să fie cel din instalarea ta de WP.

PJ_Finnegan PJ_Finnegan
7 apr. 2019 02:48:29
0

Există două părți care trebuie să funcționeze împreună:

— Trebuie să treci de la localhost la 127.0.0.1 și să adaugi numărul portului la sfârșit. Pentru mine, a fost 127.0.0.1:3306.

Numărul portului se găsește în panoul MySQL din Mamp.

Descrierea imaginii

14 oct. 2019 17:39:52
5

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.

11 ian. 2018 12:57:56
Comentarii

"mysql -u root -p" îmi dă "Access denied for user 'root'@'localhost' (using password: YES)"

Klevis Miho Klevis Miho
12 ian. 2018 13:14:06

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 maverick
12 ian. 2018 13:29:48

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 Klevis Miho
15 ian. 2018 11:42:21

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 Craig Wayne
1 iun. 2018 10:03:26

Cu o instalare curată a WordPress v3.6.9 și WP-CLI v1.5.1, soluția lui @CraigWayne a funcționat perfect.

betweenbrain betweenbrain
26 iun. 2018 18:30:54
0

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

20 aug. 2018 23:50:05
0

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

26 iul. 2019 13:05:24
0

De asemenea, este posibil să primiți această eroare cu anumite operații WP dacă utilizați WordPress multisite, caz în care trebuie să specificați un URL, de exemplu --url=mysite.org

2 iun. 2021 16:16:10