Skip to main content

WP: Can't connect to local server through socket '/tmp/mysql.sock' pero funcionan otros comandos

Introducción

Este es un problema extraño que se produce en algunos escenarios, ya que en el lugar donde ejecutamos este comando, funcionan perfectamente otros comandos habituales de wp cli.

Sin embargo, hay excepciones y a veces saltan errores extraños.

Sistema con uso diferenciado de sockets

Al tratar de usar wp db en un sistema en el que hay alguna variación que no nos permite usarlo de la manera habitual, el usuario tiene en su wp-config.php los datos correctos y, siendo operativo el uso de wp en su directorio de instalación, obtenemos el siguiente error:

asociaci@srv120:~/domains/domain.com/public_html/portal$ wp db query "DELETE FROM wp_options WHERE option_name LIKE '_wp_session_%';"
Error: Failed to get current SQL modes. Reason: ERROR 2002 (HY000): Can't connect to local server through socket '/tmp/mysql.sock' (2)

Este caso es un caso típico con DirectAdmin con su peculiar sistema de instalación de MySQL/MariaDB.

La solución es sencilla

  1. Debemos obtener el path de mysql.sock correcto.
  2. Modificar el wp-config.phppara el valor 'DB_HOST';
define('DB_HOST', 'localhost:/usr/local/mysql/data/mysql.sock');

Es el path de socket de Mysql obtenido con alguno de los métodos del punto 1.

Ahora, ya puedes ejecutar el comando sin problema alguno

Este tipo de error, muchas veces limita el alcance de obtención de respuestas, pues muchas respuestas en internet estan asociadas a el servidor esta caido, comprueba tus datos,... que en realidad no tienen nada que ver.

Aviso

Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris

Si necesitas soporte profesional puedes contratar con Castris soporte profesional.