"Falló la conexión para el usuario de control como se define en su configuración" con phpMyAdmin en XAMPP

127

Acabo de instalar XAMPP en mi máquina con Windows XP y aparece un error que dice:

La conexión para el usuario de control como se define en su configuración falló.

Antes de instalar XAMPP, tenía una base de datos MySQL instalada y tenía una contraseña. Cambié y puse la contraseña en config.inc.php para MySQL, y recibí este error:

<?php
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
    $uri = 'https://';
} else {
    $uri = 'http://';
}
$uri .= $_SERVER['HTTP_HOST'];
header('Location: '.$uri.'/xampp/');
exit;
?>

Cuando intento acceder a index.php, parece que algo está mal con la instalación de XAMPP. ¿Qué puedo hacer para solucionar este problema?

Makoto
fuente
19
En mi humilde opinión, este tipo de preguntas son bastante comunes y se desperdicia mucho tiempo para solucionarlas. Además, por "alcance definido de los problemas", es discutible si podemos poner esa búsqueda en "herramienta suave utilizada comúnmente por los programadores" o "es un problema práctico y responsable que es exclusivo del desarrollo flexible ". Por lo tanto, solicito a los veteranos de SO que consideren dicha publicación cuidadosamente antes de marcar" fuera de tema ". Los SO se han convertido en un destino confiable y único para obtener respuesta al problema de programación, de personas que lo han enfrentado y resuelto. Por lo tanto, sería útil para el programador obtener una respuesta exacta aquí que buscar en otro lugar ese problema.
Dexter

Respuestas:

243
  1. Abra phpMyAdmin en un navegador e inicie sesión como root.
  2. Crea una base de datos llamada phpmyadmin
  3. Cree un usuario llamado pmay configure el "host" con el nombre de host o la dirección IP de su servidor web (si el servidor web y MySQL están en el mismo uso de caja localhost), tome nota de la contraseña y otorgue al nuevo usuario control total sobre la phpmyadminbase de datos Se recomienda que este usuario no tenga acceso a nada más que a esta base de datos.
  4. Vaya al directorio de instalación de phpMyAdmin, donde debe encontrar un subdirectorio llamado sql.
  5. En sqlencontrarás un archivo llamado create_tables.sql. Ábrelo en un editor de texto.
  6. En phpMyAdmin, seleccione la phpmyadminbase de datos y haga clic en la pestaña "SQL".
  7. Copie / pegue todo el texto desde create_tables.sqlel cuadro de texto y ejecute la consulta.
  8. Abra el config.inc.phparchivo en el directorio de instalación de phpMyAdmin y agregue las siguientes líneas (o cambie la configuración existente si ya están allí):

    $cfg['Servers'][1]['pmadb'] = 'phpmyadmin';
    $cfg['Servers'][1]['controluser'] = 'pma';
    $cfg['Servers'][1]['controlpass'] = '<your password>';
    
    // Note: The list below may grow as PMA evolves and more control tables are added
    // Use your common sense! Don't just blindly copypasta, look at what it means!
    $cfg['Servers'][1]['bookmarktable'] = 'pma_bookmark';
    $cfg['Servers'][1]['relation'] = 'pma_relation';
    $cfg['Servers'][1]['userconfig'] = 'pma_userconfig';
    $cfg['Servers'][1]['table_info'] = 'pma_table_info';
    $cfg['Servers'][1]['column_info'] = 'pma_column_info';
    $cfg['Servers'][1]['history'] = 'pma_history';
    $cfg['Servers'][1]['recent'] = 'pma_recent';
    $cfg['Servers'][1]['table_uiprefs'] = 'pma_table_uiprefs';
    $cfg['Servers'][1]['tracking'] = 'pma_tracking';
    $cfg['Servers'][1]['table_coords'] = 'pma_table_coords';
    $cfg['Servers'][1]['pdf_pages'] = 'pma_pdf_pages';
    $cfg['Servers'][1]['designer_coords'] = 'pma_designer_coords';
  9. Guarde y cierre el archivo.

IMPORTANTE : PMA carga la configuración al iniciar sesión, la evalúa y la almacena en los datos de la sesión para que el mensaje no desaparezca hasta que haga esto:

  1. Cierre sesión en phpMyAdmin e inicie sesión nuevamente

Problema resuelto.

DaveRandom
fuente
3
+1 para "cerrar sesión y volver a iniciar sesión". Perdí cinco minutos sin darme cuenta de que tenía que hacer eso.
Matthew G
1
@MatthewG Sí, el archivo de configuración se carga en su sesión en el punto en el que inicia sesión para reducir la E / S del disco, de modo que ^^ se aplica a cualquier cambio que pueda hacer en el archivo de configuración de PMA
DaveRandom
14
Por alguna razón, mi versión de phpmyadmin tiene los nombres de las tablas como "pma__bookmark" y así sucesivamente con 2 "guiones bajos". Si alguien tiene lo mismo, entonces debe editar el "config.inc.php" en consecuencia. Y, por cierto, el archivo de configuración se encuentra en el directorio "/ etc / phpmyadmin" en Ubuntu
ajaybc
66
En Ubuntu 14.04, la ubicación de create_tables.sql está dentro de /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz
karlingen el
55
Esta es una excelente respuesta (la centésima +de mi parte). Sin embargo, no he encontrado la ejemplos directorio en el señalado en el paso 4. En cambio, era aquí: /usr/share/doc/phpmyadmin/examplesy allí encontró el archivo sql comprimido: create_tables.sql.gz.
Majid Fouladpour
134

Si llegaste aquí y estás usando Debian / Ubuntu (o cualquier otra distribución basada en dpkg), ejecuta el siguiente comando:

sudo dpkg-reconfigure phpmyadmin

El paquete phpmyadmin contiene el script para realizar esta operación por usted, todo lo que necesita es un usuario con permisos. sudo no es obligatorio si ha iniciado sesión como root, por supuesto.

EDITAR: puede valer la pena intentar eliminar al usuario actual de phpmyadmin.

O Cohen
fuente
2
Esto funcionó para mí, solo tuve que reinstalar la base de datos que pedía. Gracias. (Ubuntu 12.04)
ino
17
Tuve que escribir "pma" en lugar de "phpmyadmin" para el usuario de control durante la configuración para que esto funcione.
Hardell
1
Gracias, me salvaste el día :) jeje
Jeremy Dicaire
2
Descartar el usuario 'phpmyadmin' primero y ejecutar 'sudo dpkg-reconfigure phpmyadmin' después de trabajar para mí. ¡Gracias!
bshea
1
nota: esto borrará todos los servidores configurados, si los hay.
Raptor
23

Simplemente comente todos los bloques de código "Usuario para funciones avanzadas" y "Funciones avanzadas de phpMyAdmin" config.inc.php.

racha
fuente
¿Alguna explicación para esto? ¿Cómo y por qué funciona esto?
Huey
1
@Ben: a veces eso es todo;)
racha
En qué archivos ... ¡Esto es muy poco informativo! Pero todos lo entienden, así que me siento estúpido e incapaz de arreglarlo.
Jamie Hutber el
2
Eso sería config.inc.php
Rocoty
1
No existe nada parecido en el User for advanced features" and "Advanced phpMyAdmin featuresinteriorphpmyadmin/config.inc.php
AN
11

¿Ha cambiado recientemente la contraseña de root de su servidor MySQL? Si la respuesta es SÍ, entonces esta es la causa del error / advertencia dentro de la consola phpMyAdmin. Para solucionar el problema, simplemente edite el archivo config-db.php de phpMyAdmin y configure la contraseña de la base de datos adecuada.

La primera respuesta es demasiado complicada en mi opinión y la segunda respuesta no funcionó para mí. Entonces:

En los servidores basados ​​en Linux, el archivo generalmente se encuentra en:

/etc/phpmyadmin/config-db.php

o:

/etc/phpMyAdmin/config-db.php

Ejemplo: (Mi archivo se veía así y cambié el usuario de phpmyadmina admin, el nombre de usuario que creé para mantener mi base de datos a través de phpmyadmin, y puse la contraseña apropiada.

$dbuser='phpmyadmin';
$dbpass=''; // set current password between quotes ' '
$basepath='';
$dbname='phpmyadmin';
$dbserver='';
$dbport='';
$dbtype='mysql';

créditos: http://tehnoblog.org/phpmyadmin-error-connection-for-controluser-as-defined-in-your-configuration-failed/

Ben
fuente
4

Esto funcionó para mí con phpmyadmin en Ubuntu 16.04:

Edité /etc/phpmyadmin/config.inc.php y cambié las siguientes 2 líneas:

$cfg['Servers'][$i]['controluser'] = 'root'; 
$cfg['Servers'][$i]['controlpass'] = 'thepasswordgiventoroot'; 
Dominique H.
fuente
3

En Ubunbtu.

El mensaje de Ben está cerca, pero no es la contraseña de root el problema, el problema que encontré fue que había creado una contraseña para la base de datos phpmyadmin cuando la instalé. Esta contraseña no se lleva a la instalación en ubuntu, por lo que la variable $ dbpass = ''; en el archivo de configuración de la base de datos está vacío y no la contraseña que configuró.

  1. Para verificar que tiene la contraseña correcta en la línea de comando, inicie sesión en mysql usando el siguiente comando: mysql -u phpmyadmin -p intente con una contraseña en blanco. Si inicia sesión, ahora sabe cuál es la contraseña.
  2. Edite /etc/phpadmin/config-db.php y cambie $ dbpass = ''; a $ dbpass = 'Su contraseña'; y guarda el archivo.
  3. Edite /etc/dbconfig-common/phpmyadmin.conf change dbc_dbpass = '' ; to dbc_dbpass = 'Su contraseña'; y guarda el archivo. Cierre su navegador y vuelva a cargar, ahora encontrará que el mensaje ha desaparecido.
Clive Wi
fuente
0

El problema es que la contraseña de usuario de control de PhpMyAdmin (generalmente: pma) no coincide con la contraseña de usuario mysql: pma (mismo usuario).

Para solucionarlo, 1. Establezca la contraseña que desea para el usuario pma aquí:

"C: \ xampp \ phpMyAdmin \ config.inc.php"

$ cfg ['Servidores'] [$ i] ['controlpass'] = 'your_new_phpmyadmin_pass';

(debería ser como en la línea 32)

Luego vaya a mysql, inicie sesión como root, vaya a: (Usé phpmyadmin para ir aquí)

Base de datos: mysql »Tabla: usuario

Edite el usuario: pma

Seleccione "Contraseña" en la lista de funciones (columna izquierda) y establezca "your_new_phpmyadmin_pass" en la columna derecha y presione Go.

Reinicie el servidor mysql.

Ahora el mensaje debería desaparecer.

Tarik
fuente
0

Simplemente hago cambios en el archivo config.inc.php. Hay una contraseña por error en este enlace $ cfg ['Servidores'] [$ i] ['contraseña'] = 'su contraseña'; y ahora está perfectamente trabajado.

Mohit Sharma
fuente
edite su pregunta y agregue más detalles. Esto es de baja calidad.
Mathews Sunny
Lo anterior es la resolución, no he seguido los pasos anteriores. Simplemente voy al directorio config.inc.php y abro este archivo config.inc.php en el bloc de notas y cambié esta línea $ cfg ['Servidores'] [$ i] ['contraseña'] = 'su contraseña'
Mohit Sharma
Vi que se menciona que la contraseña es incorrecta y puse la contraseña correcta nuevamente y la guardé y ejecuté phpmyadmin nuevamente y ahora funciona correctamente
Mohit Sharma
0

en ubuntu /etc/phpmyadmin/config-db.php

asegúrese de que la contraseña coincida con su config.inc.php para el usuario de control

También para el pez globo error demasiado corto

edite /var/lib/phpmyadmin/blowfish_secret.inc.php y alargue la clave

Royce
fuente
0

en ubuntu 18.04 en etc/phpmyadmin/config.inc.php comentar todo el bloque

Opcional: usuario para funciones avanzadas

booz
fuente
-1

Habiendo instalado el XAMPP hoy, decidí usar un puerto predeterminado diferente para mysql, lo cual fue horrible. Asegúrese de agregar estas líneas al phpMyAdmin config.inc.php:

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['port'] = 'port';`
David
fuente