WP CLI “Erro ao estabelecer uma conexão com o banco de dados” no host local (MAMP)


13

Eu recebo esse erro quando tento criar algo com o WP CLI:

Error establishing a database connection. This either means that the username and password information in your `wp-config.php` file is incorrect or we cant contact the database server at `localhost`. This could mean your hosts database server is down.

Mas posso abrir o site com o link: http: // localhost: 8888 / projectname

Qualquer ideia?

Respostas:


27

Entre no seu wp-config.phpe mude seu DB_HOSTpara, em 127.0.0.1vez de localhost.

Os créditos vão para Craig Wayne acima nos comentários.


2
No MAMP Pro, também tive que verificar "Permitir acesso à rede no MySQL" para que isso funcionasse.
Nick M

Eu tentei isso, mas não ajuda. Estou usando o clichê Bedrock. Eu fui através do arquivo wp-config e .env repetidamente, fui através das configurações do MAMPs repetidamente. Depurado o arquivo wb-db.php. Em seguida, removi o # da linha DB_HOST em .env e tudo está bem.
Tom

@ Tom Experimente este tommcfarlin.com/installing-wp-cli-with-mamp antes de alterar o host wp-config.php. Deveria funcionar.
Maria Daniel Deepak

5

Para mim, a resposta foi alterar a configuração de para DB_HOSTem 127.0.0.1:8889vez de localhostem wp-config.phpe também marcar a caixa "Permitir acesso de rede ao MySQL" nas configurações do MySQL. Obter a porta configurada para a porta que o MAMP Pro está usando para o banco de dados foi a peça que faltava mais que eu não vi nas outras respostas aqui. YMMV.


4

Certifique-se de usar o binário MAMP PHP. Você pode verificar com qual versão PHP do WP CLI está sendo executado

php wp-cli.phar --info

Para usar o PHP MAMP mais recente, você precisa modificar seu perfil bash ou zsh:

PHP_VERSION=$(ls /Applications/MAMP/bin/php/ | sort -n | tail -1)
export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH

Certifique-se de recarregar o perfil:

source ~/.bash_profile

Verifique se as alterações foram aplicadas corretamente:

  php wp-cli.phar --info

11
Esse primeiro comando apenas dá o erroCould not open input file: wp-cli.phar
Felix Eve

Você executou o comando na pasta raiz do wordpress?
eknows

sim, mas não há wp-cli.phararquivo na raiz do diretório WP .
Felix Eve

Aqui você pode encontrar mais informações sobre como instalar o wp-cli.phar: ( wp-cli.org )
eknows

2
@FelixEve se durante a instalação você se moveu wp-cli.pharsob /usr/local/bin/wp, você pode emitir wp --infoem vez disso: o exibida PHP binarydeve ser o único sob sua instalação do WP.
PJ_Finnegan

0

Etapa 1: verifique se o servidor mysql está executando a Etapa 2: se sim, você pode efetuar login no mysql usando

mysql -u root -p

digite sua senha: (você deve usar este comando do terminal) e use o seguinte comando para garantir que o banco de dados exista:

show databases;
grant all privileges on database_name.* to 'root'@'localhost' identified by 'password';
flush privileges;
exit;

Agora edite o arquivo wp-config.php e procure por

define('DB_NAME', 'db_name');
define('DB_USER', 'root');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');

Agora reinicie o servidor e tente fazer login no seu painel do wordpress. Espero que ajude.


"mysql -u root -p" me fornece "Acesso negado para o usuário 'root' @ 'localhost' (usando a senha: YES)"
Klevis Miho

Quando você configura seu banco de dados mysql, você deve ter digitado uma senha. Use essa senha. Se você não configurou a senha no momento da configuração do banco de dados mysql, basta pressionar enter em vez de qualquer senha.
Maverick

Eu fiz o que você escreveu. Pode se conectar ao banco de dados com "mysql -u root -p". Também os privilégios são concedidos. Mas o erro ainda está lá.
Klevis Miho

11
Descobri que se eu mudar localhost para 127.0.0.1 no meu wp-config.php, tudo funciona bem ... Eu me sinto como há um problema maior aqui
Craig Wayne

11
Com uma instalação limpa do WordPress v3.6.9 e WP-CLI v1.5.1, a solução da @CraigWayne funcionou perfeitamente.
betweenbrain

0

No meu caso, além da mensagem de erro acima mencionada, também recebi os avisos abaixo:

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

De acordo com esta pergunta , esse problema ocorre porque o conjunto de caracteres padrão para o MySQL 8.0 é utfmb4.

Na verdade, eu poderia replicar o erro atualizando do MySQL 5.7 para o MySQL 8.0

Resolvi o problema exportando o banco de dados, fazendo o downgrade para o MySQL 5.7 e reimportando os dados. Também executei testes no MariaDB 10.3 e funciona bem.



0

Há duas partes disso que precisam trabalhar juntas:

- Você precisa alternar de localhostpara 127.0.0.1e adicionar o número da porta no final. Para mim foi 127.0.0.1:3306.

O número da porta está no painel MySQL no Mamp.

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.