Los errores de conexión con base de datos pueden suceder en algunas ocasiones. En esta ocasión, me ha sucedido con una instalación de WordPress en un servidor linux dedicado donde toda la configuración e instalación de componentes se realiza manualmente. Veamos el error obtenido y la solución que encontré.
También te puede interesar:
¿Qué es Elementor WordPress? Todo sobre Diseño Web con Elementor
Optimiza tu web en WordPress con WP Rocket
¿Qué son y para qué sirven los plugins de WordPress?
Cómo instalar un servidor web en un NAS Synology
Tabla de contenidos
Error de conexión con Base de Datos en WordPress
En esta ocasión, en esta instalación de WordPress, el error de conexión de con base de datos era el siguiente:
php_network_getaddresses: getaddrinfo failed: Name or service not known
Como el de la imagen:
Activar modo debug en WordPress
Antes que nada, si no recuperas ningún error, posiblemente debas activar el modo Debug de WordPress. Edita el fichero wp-config.php y pon a true las siguientes propiedades, o añádelas si no las tienes en tu fichero de configuración:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Una vez activado el modo debug, deberías obtener el error de la pantalla anterior y entender mejor cuál es el problema en cuestión.
Posibles causas
Debes analizar el problema, e ir acotándolo. Para ello, os dejo algunas cosas que podéis analizar para ir descartando.
Ausencia de librerías PHP
Investigando el problema, haciendo uso del PHP Info y comparando un WordPress que sí funciona, vi que me faltaban algunas librerías PHP por instalar. Entre ellas están mbstring y msqli.
Comandos para instalar las librerías mbstring y msqli en Centos 8 con PHP 7.4:
dnf install php-mbstring
dnf install php74-php-mbstring
dnf install php-mysqli
Visibilidad con la base de datos
Al tratarse un error con pinta de ser de problemas de red, me puse a analizar si había visibilidad entre el servidor de aplicaciones Apache con el servidor de BBDD. En mi caso, eran servidores distintos. Y ahí se encontraba el problema. Revisando mi fichero de configuración de WordPress vi que tenía puesto el nombre del servidor en vez de una IP.
Ejemplo:
- Servidor de aplicaciones: 192.168.1.2
- Servidor de base de datos: 192.168.1.1
/** Database hostname */
define( 'DB_HOST', 'nombreservidorbbdd' );
También pude ver que durante la creación de la base de datos y los permisos del usuario, lo hice de la siguiente de forma:
MySQL Antes:
CREATE DATABASE WPTEST;
CREATE USER BLOG_WPTEST_APP@nombreservidorbbdd IDENTIFIED BY 'BLOG_WPTEST';
GRANT ALL PRIVILEGES ON WPTEST.* TO BLOG_WPTEST_APP@nombreservidorbbdd;
FLUSH PRIVILEGES;
Lo modifiqué y recreé el usuario para que el acceso sea por IP. Hay que indicarle la IP desde dónde se permite la conexión.
CREATE DATABASE WPTEST;
CREATE USER BLOG_WPTEST_APP@192.168.1.2 IDENTIFIED BY 'BLOG_WPTEST';
GRANT ALL PRIVILEGES ON WPTEST.* TO BLOG_WPTEST_APP@192.168.1.2;
FLUSH PRIVILEGES;
La corrección del wp-config.php quedaba entonces así:
/** Database hostname */
define( 'DB_HOST', '192.168.1.1' );
Comprobar correcciones
Una vez realizadas las modificaciones anteriores, ya se muestra correctamente el formulario de instalación de WordPress. El error de conexión con base de datos ha desaparecido.
Conclusiones
La instalación de cualquier aplicación open source en servidores linux dedicados tiene estas cosas. La instalación se complica con cuestiones que un hosting especializado en WordPress se solventan de forma automática. Por ello, algunas veces merece la pena valorar si es rentable tener un servidor dedicado o no para un WordPress o aplicación similar, y optar por soluciones automáticas como los Hosting WordPress donde todas estas cuestiones técnicas son transparentes para nosotros.