Informática y Software Práctico

XAMPP phpMyAdmin acceso denegado: qué tocar en config.inc

Post actualizado el día octubre 29, 2026 by DeiviSanzPlay

El error de XAMPP phpMyAdmin acceso denegado aparece casi siempre con el mensaje «Access denied for user ‘root’@’localhost’» o con una pantalla en blanco tras meter la contraseña. No es un fallo de instalación: es la forma que tiene MySQL/MariaDB de decirte que las credenciales que envía phpMyAdmin no coinciden con las que tiene el servidor. Y en XAMPP pasa muchísimo porque el usuario root suele quedarse sin contraseña hasta que alguien la cambia y se olvida de avisar a phpMyAdmin.

La causa más común del XAMPP phpMyAdmin acceso denegado es haber establecido una contraseña al root desde la pestaña «Cuentas de usuario» de phpMyAdmin o con un script, mientras el archivo de configuración sigue apuntando a una contraseña vacía. Ocurre igual si importaste una base de datos desde otro equipo y esa base trae sus propios usuarios MySQL.

Dónde se corrige realmente el fallo de credenciales

El archivo que manda es config.inc.php, dentro de la carpeta xampp/phpMyAdmin. Ahí están las líneas que definen el usuario y la contraseña con los que phpMyAdmin intenta entrar. Si el servidor tiene contraseña y el archivo no, el acceso denegado en phpMyAdmin de XAMPP está garantizado.

Abre ese archivo con un editor de texto normal, busca $cfg[‘Servers’][$i][‘password’] y escribe entre las comillas la contraseña real del root. Si el campo está vacío y tú nunca pusiste contraseña, el problema puede ser otro: revisa que $cfg[‘Servers’][$i][‘auth_type’] esté en ‘config’ y no en ‘cookie’ mezclado con credenciales antiguas en caché del navegador.

Hay un caso que se me quedó grabado: un compañero reinstaló XAMPP tres veces por este error. El problema real era que tenía otro MySQL corriendo en el puerto 3306 como servicio de Windows. phpMyAdmin se conectaba a ese otro servidor, no al de XAMPP. Cambiar el puerto de MySQL de XAMPP a 3307 y ajustar $cfg[‘Servers’][$i][‘port’] lo resolvió en dos minutos. Ese es el tipo de cosa que no arregla ninguna guía genérica.

Restablecer la contraseña del root cuando ya no hay acceso

Si no recuerdas la contraseña, el camino es entrar por consola con el servidor MySQL detenido parcialmente. Desde la shell de XAMPP puedes arrancar MySQL con mysqld –skip-grant-tables, entrar con mysql -u root sin contraseña, ejecutar ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘nueva_clave’; y reiniciar el servicio normal. Después actualizas config.inc.php con esa clave.

Esto no funciona si el servicio de MySQL está registrado en Windows y arranca automático con el sistema: primero tendrás que detenerlo desde Servicios o el comando net stop mysql. Tampoco sirve si otro proceso ocupa el puerto. Es un detalle que muchos tutoriales omiten y que provoca que el acceso denegado en phpMyAdmin de XAMPP siga ahí después de «resetear» la contraseña.

Permisos de usuario: cuando la contraseña es correcta pero el error persiste

Existe otra variante del XAMPP phpMyAdmin acceso denegado que no tiene que ver con contraseñas sino con privilegios. Si el usuario root solo tiene permisos para localhost y accedes desde 127.0.0.1, MySQL lo trata como un host distinto y rechaza la conexión. La solución es otorgar privilegios a ‘root’@’127.0.0.1’ o cambiar el host en la configuración a localhost.

En equipos con PHP actualizado, otro detalle: la extensión mysqli debe estar activa en php.ini. Si desactivaste extensiones para acelerar Apache, phpMyAdmin puede devolver un error de autenticación confuso. Comprueba que extension=mysqli no esté comentada.

Cuándo el problema no tiene arreglo dentro de XAMPP

Si tu instalación es la versión portable y ejecutas desde una unidad de red, los permisos NTFS pueden bloquear la escritura del archivo de sesión de phpMyAdmin y provocar un acceso denegado intermitente. En ese escenario, mover la carpeta a una ruta local como C:xampp es la única salida fiable.

La documentación oficial de Apache Friends y los manuales de MySQL recogen los parámetros de autenticación, pero no hay una solución universal: cada entorno cambia. Revisar el log mysql_error.log dentro de xampp/mysql/data te dirá exactamente por qué se rechaza la conexión. Ese archivo es la fuente más honesta que tienes antes de tocar nada más.


Sobre el autor: DeiviSanzPlay — Soy David Sanz, Editor y Responsable de Contenidos. Mi trabajo consiste en revisar, corregir y mejorar los contenidos de este blog para que la información sea clara, útil y esté bien estructurada. Trabajo con diferentes temáticas y verticales, por lo que una parte importante de mi día a día es analizar cada contenido, cuidar la redacción y asegurar que el lector encuentre información de calidad. Me gusta prestar atención a los detalles. Desde una corrección de estilo hasta la organización de un artículo, todo cuenta cuando se trata de crear contenidos que realmente aporten valor y sean fáciles de entender. En este blog encontrarás artículos sobre diferentes temas y sectores. Mi responsabilidad es cuidar y supervisar cada contenido para que mantenga unos estándares de calidad y ofrezca una buena experiencia a quien nos visita. Porque para mí, un buen contenido no consiste únicamente en escribir. También hay que revisar, contrastar, ordenar y pensar en la persona que está al otro lado de la pantalla.

Perfiles verificables: Sitio web

Publicado el 29 de October de 2026. Última revisión: 29 de October de 2026.