web-dev-qa-db-fra.com

"La connexion à controluser définie dans votre configuration a échoué" avec phpMyAdmin dans XAMPP

Je viens d'installer XAMPP sur ma machine Windows XP et j'obtiens une erreur disant:

La connexion pour controluser, telle que définie dans votre configuration, a échoué.

Avant d’installer XAMPP, j’avais une base de données MySQL et un mot de passe. J'ai changé et mis le mot de passe dans config.inc.php pour MySQL, et j'ai eu cette erreur: 

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

Lorsque j'essaie d'accéder à index.php, il semble que quelque chose ne va pas avec l'installation de XAMPP. Que puis-je faire pour résoudre ce problème?

116
user1410081
  1. Ouvrez phpMyAdmin dans un navigateur et connectez-vous en tant que root.
  2. Créez une base de données appelée phpmyadmin
  3. Créez un utilisateur appelé pma et définissez "Hôte" sur le nom d'hôte ou l'adresse IP de votre serveur Web (si le serveur Web et MySQL sont sur la même boîte, utilisez localhost), notez le mot de passe et accordez le nouvel utilisateur contrôle sur la base de données phpmyadmin. Il est recommandé que cet utilisateur n'ait accès à rien d'autre que cette base de données.
  4. Allez dans le répertoire d'installation de phpMyAdmin, où vous devriez trouver un sous-répertoire appelé sql.
  5. Dans sql, vous trouverez un fichier appelé create_tables.sql. Ouvrez-le dans un éditeur de texte.
  6. Dans phpMyAdmin, sélectionnez la base de données phpmyadmin et cliquez sur l'onglet "SQL".
  7. Copiez/collez le texte entier de create_tables.sql dans la zone de texte, puis exécutez la requête.
  8. Ouvrez le fichier config.inc.php dans le répertoire d'installation de phpMyAdmin et ajoutez les lignes suivantes (ou modifiez les paramètres existants s'ils existent déjà):

    $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. Enregistrez et fermez le fichier.

IMPORTANT- PMA charge la configuration lors de la connexion, l'évalue et la stocke dans les données de la session pour que le message ne disparaisse pas tant que vous n'avez pas procédé comme suit:

  1. Déconnectez-vous de phpMyAdmin et reconnectez-vous

Problème résolu.

229
DaveRandom

Si vous êtes arrivé ici et que vous utilisez Debian/Ubuntu (ou toute autre distribution basée sur dpkg), exécutez la commande suivante:

Sudo dpkg-reconfigure phpmyadmin

Le paquet phpmyadmin contient le script pour effectuer cette opération pour vous. Il suffit d’un utilisateur disposant d’autorisations. Sudo n'est pas requis si vous êtes connecté en tant que root, bien sûr.

EDIT: Il pourrait être intéressant d'essayer de supprimer l'utilisateur phpmyadmin actuel.

123
Or Cohen

Il suffit de commenter l'ensemble des blocs de code "Utilisateur pour fonctionnalités avancées" et "Fonctions avancées de phpMyAdmin" dans config.inc.php.

22
streak

Cela a fonctionné pour moi avec phpmyadmin sous Ubuntu 16.04:

J'ai édité /etc/phpmyadmin/config.inc.php et modifié les 2 lignes suivantes:

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

Sur Ubunbtu.

Le message de Ben est proche mais ce n'est pas le mot de passe root qui est le problème, le problème que j'ai rencontré est que j'avais créé un mot de passe pour la base de données phpmyadmin lorsque je l'ai installé . Ce mot de passe n'est pas transféré dans l'installation sous ubuntu. $ dbpass = ''; dans le fichier de paramètres de base de données est vide et non le mot de passe que vous avez défini.

  1. Pour vérifier que vous avez le bon mot de passe sur la ligne de commande, connectez-vous à mysql à l'aide de la commande suivante: mysql -u phpmyadmin -p essayez un mot de passe vide. S'il se connecte, vous savez maintenant quel est le mot de passe.
  2. Éditez /etc/phpadmin/config-db.php et changez $ dbpass = ''; to $ dbpass = 'Votre mot de passe'; et enregistrez le fichier.
  3. Éditez /etc/dbconfig-common/phpmyadmin.conf change dbc_dbpass = ''; to dbc_dbpass = 'Votre mot de passe'; et enregistrez le fichier . Fermez votre navigateur et rechargez, vous verrez maintenant que le message a disparu.
3
Clive Wi

Avez-vous récemment changé le mot de passe root de votre serveur MySQL? Si la réponse est OUI, c'est la cause de l'erreur/avertissement dans la console phpMyAdmin. Pour résoudre le problème, modifiez simplement votre fichier config-db.php de phpMyAdmin et configurez le mot de passe de la base de données approprié.

La première réponse est trop dérangeante à mon avis et la deuxième réponse n'a pas fonctionné pour moi. Alors:

Sur les serveurs basés sur Linux, le fichier se trouve généralement dans:

/etc/phpmyadmin/config-db.php

ou:

/etc/phpMyAdmin/config-db.php

Exemple: (Mon fichier ressemblait à ceci et j'ai changé l'utilisateur de phpmyadmin à admin, le nom d'utilisateur que j'ai créé pour gérer ma base de données via phpmyadmin, et j'ai entré le mot de passe approprié.

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

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

2
Ben

"Pour que cela fonctionne à nouveau, je viens de supprimer les fichiers

ib_logfile0 et.

ib_logfile1 .

de :

/ Applications/MAMP/db/mysql56/ib_logfile0 "

Sur XAMPP, ses fichiers Xampp/xamppfiles/var/mysql

Vous l'avez depuis PHP Avertissement: mysqli_connect (): (HY000/2002): Connexion refusée

2
SoftwarerHelp

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

assurez-vous que le mot de passe correspond à votre config.inc.php pour l'utilisateur du contrôle 

aussi pour l'erreur blowfish trop courte 

éditez /var/lib/phpmyadmin/blowfish_secret.inc.php et rendez la clé plus longue 

0
Royce

J'ai eu le même problème. Dans mon cas, Mysql n'a pas été démarré après un redémarrage. une fois que j'ai commencé le mysql "service mysql start" tout a bien fonctionné.

0
Amir Khalil

sur Ubuntu 18.04 dans etc/phpmyadmin/config.inc.php commenter tout le bloc 

Facultatif: utilisateur pour les fonctionnalités avancées

0
boaz

Le problème est que le mot de passe de l'utilisateur de contrôle PhpMyAdmin (généralement: pma) ne correspond pas au mot de passe de l'utilisateur mysql: pma (même utilisateur).

Pour résoudre ce problème, 1. Définissez le mot de passe souhaité pour l'utilisateur pma ici:

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

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

(devrait être comme sur la ligne 32)

Ensuite, allez sur mysql, connectez-vous en tant que root, allez sur: (j'ai utilisé phpmyadmin pour aller ici)

Base de données: mysql »Table: utilisateur

Editer l'utilisateur: pma

Sélectionnez "Mot de passe" dans la liste des fonctions (colonne de gauche) et définissez "your_new_phpmyadmin_pass" dans la colonne de droite, puis appuyez sur Go.

Redémarrez le serveur mysql.

Maintenant, le message devrait disparaître.

0
Tarik

Je viens simplement d'apporter des modifications au fichier config.inc.php. Ce lien contient un mot de passe erroné $ cfg ['Servers'] [$ i] ['password'] = 'votre mot de passe'; et maintenant sa parfaitement fonctionné.

0
Mohit Sharma