WP CLI "Error al establecer una conexión de base de datos" en localhost (MAMP)

13

Recibo este error cuando intento crear algo con 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.

Pero puedo abrir el sitio con el enlace: http: // localhost: 8888 / projectname

¿Alguna idea?

Klevis Miho
fuente

Respuestas:

27

Entra en tu wp-config.phpy cambia tu DB_HOSTa en 127.0.0.1lugar de localhost.

El crédito va a Craig Wayne arriba en los comentarios.

Florín
fuente
2
En MAMP Pro también tuve que marcar "Permitir acceso de red a MySQL" para que esto funcione.
Nick M
Intenté esto pero no ayudé. Estoy usando la caldera de Bedrock. Revisé wp-config y .env una y otra vez, revisé las configuraciones de MAMP una y otra vez. Depuró el archivo wb-db.php. Luego eliminé el # de la fila DB_HOST en .env, y todo está bien.
Tom
@ Tom Pruebe esto tommcfarlin.com/installing-wp-cli-with-mamp antes de cambiar el host wp-config.php. Deberia de funcionar.
Maria Daniel Deepak
5

Para mí, la respuesta fue cambiar la configuración para DB_HOSTen 127.0.0.1:8889lugar de localhosten wp-config.php, y también marcar la casilla "Permitir acceso de red a MySQL" en la configuración de MySQL. Obtener el puerto configurado en el puerto que MAMP Pro está utilizando para la base de datos fue la pieza crítica que faltaba y que no vi en las otras respuestas aquí. YMMV.

Evan
fuente
4

Asegúrese de usar el binario PHP MAMP. Puede verificar con qué versión de PHP WP CLI se está ejecutando

php wp-cli.phar --info

Para utilizar el último PHP MAMP, debe modificar su perfil bash o zsh:

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

Asegúrese de volver a cargar el perfil:

source ~/.bash_profile

Asegúrese de que los cambios se apliquen correctamente:

  php wp-cli.phar --info
eknows
fuente
1
Ese primer comando solo da el errorCould not open input file: wp-cli.phar
Felix Eve
¿Ejecutó el comando en la carpeta raíz de WordPress?
eknows
Sí, pero no hay ningún wp-cli.phararchivo en la raíz del directorio WP .
Felix Eve
Aquí puede encontrar más información sobre cómo instalar wp-cli.phar: ( wp-cli.org )
eknows
2
@FelixEve si durante la instalación se ha movido wp-cli.pharbajo /usr/local/bin/wp, puede emitir wp --infoen su lugar: la que se muestra PHP binarydebe ser el que en la instalación de WP.
PJ_Finnegan
0

Paso 1: compruebe si su servidor mysql se está ejecutando Paso 2: en caso afirmativo, puede iniciar sesión en mysql utilizando

mysql -u root -p

luego ingrese su contraseña: (debe usar este comando desde la terminal) luego use el siguiente comando para asegurarse de que la base de datos existe

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

ahora edite el archivo wp-config.php y busque

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

Ahora reinicie el servidor e intente iniciar sesión en su panel de WordPress. Espero que ayude.

disidente
fuente
"mysql -u root -p" me da "Acceso denegado para el usuario 'root' @ 'localhost' (usando la contraseña: YES)"
Klevis Miho
cuando configura su base de datos mysql, debe haber ingresado una contraseña. Usa esa contraseña. Si no configuró la contraseña en el momento de la configuración de la base de datos mysql, simplemente presione enter en lugar de cualquier contraseña.
inconformista
Hice lo que escribiste. Se puede conectar a la base de datos con "mysql -u root -p". También se otorgan los privilegios. Pero el error sigue ahí.
Klevis Miho
1
He descubierto que si cambio localhost a 127.0.0.1 en mi wp-config.php, todo funciona bien ... siento que hay un problema mayor aquí
Craig Wayne
1
Con una instalación limpia de WordPress v3.6.9 y WP-CLI v1.5.1, la solución de @CraigWayne funcionó perfectamente.
entre cerebro
0

En mi caso, además del mensaje de error mencionado anteriormente, también recibí las siguientes advertencias:

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

Según esta pregunta , este problema ocurre porque el conjunto de caracteres predeterminado para MySQL 8.0 es utfmb4.

De hecho, podría replicar el error actualizando MySQL 5.7 a MySQL 8.0

Resolví el problema exportando la base de datos, bajando a MySQL 5.7 y volviendo a importar los datos. También realicé pruebas en MariaDB 10.3 y funciona bien.

Ese chico brasileño
fuente
0

Hay dos partes de esto que necesitan trabajar juntas:

- Es necesario cambiar de localhosta 127.0.0.1y agregar el número de puerto al final. Para mí lo fue 127.0.0.1:3306.

El número de puerto está en el panel MySQL en Mamp.

ingrese la descripción de la imagen aquí

bacalao salado
fuente