Este mensaje es el mismo tanto si la contraseña está mal, como si el servidor está parado, el disco lleno o se ha alcanzado el límite de conexiones. Adivinar entre cuatro es más lento que probar, y la prueba es una sola orden.
Prueba las credenciales, no el sitio
mysql -u dbuser -p -h localhost dbname
- Access denied for user: usuario o contraseña equivocados, o el usuario no tiene permisos sobre esa base.
- Can't connect to local MySQL server: el servicio no está en marcha.
- Unknown database: el nombre está mal, o la base nunca se creó en este servidor.
- Too many connections: se ha alcanzado el límite.
Acceso denegado
Lee las credenciales que el sitio usa de verdad, no las que recuerdas.
grep -E "DB_NAME|DB_USER|DB_PASSWORD|DB_HOST" wp-config.php
Una contraseña con una comilla o una barra invertida es una causa frecuente: está bien en el panel y mal en el archivo, porque se perdió el escapado.
El servicio no está en marcha
systemctl status mariadb
systemctl start mariadb
journalctl -u mariadb --since "30 min ago" | tail -30
Si arranca y se vuelve a parar, el registro nombra el motivo. Un disco lleno y una tabla corrupta son los dos habituales.
Demasiadas conexiones
SHOW STATUS LIKE 'Threads_connected';
SHOW VARIABLES LIKE 'max_connections';
Subir max_connections cuando el problema real son las consultas lentas solo compra minutos. Cada conexión cuesta memoria, y un servidor que se queda sin RAM es peor que uno que rechaza una conexión.
Después de una mudanza
Una base trasladada a otro servidor suele necesitar que DB_HOST pase de localhost a una dirección, y un usuario con permisos desde esa dirección en vez de desde localhost.
En el alojamiento de EGPHP las credenciales están en EGPNL, dentro de Bases de datos, y el panel muestra el host que debe usar el sitio. Copia de ahí en vez de teclear.