"La connexion pour controluser tel que défini dans votre configuration a échoué" avec phpMyAdmin dans XAMPP

127

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

La connexion pour controluser tel que défini dans votre configuration a échoué.

Avant d'installer XAMPP, j'avais une base de données MySQL installée et elle avait 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?

Makoto
la source
19
À mon humble avis, ce genre de questions est assez commun et beaucoup de temps est gaspillé pour les résoudre. problème pratique et résolu qui est unique au développement logiciel ". Je demande donc aux vétérans de l'OS d'examiner attentivement ce poste avant de marquer" hors sujet ". Les SO deviennent une destination unique et fiable pour résoudre les problèmes de programmation de la part des personnes qui l'ont affronté et résolu. Il serait donc utile pour le programmeur d'obtenir une réponse exacte ici plutôt que de rechercher ailleurs un tel problème.
Dexter

Réponses:

243
  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é pmaet définissez le "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 utilisation de la boîte localhost), notez le mot de passe et accordez au nouvel utilisateur un contrôle total sur la phpmyadminbase de données. Il est recommandé que cet utilisateur n'ait accès à rien d'autre que cette base de données.
  4. Accédez au répertoire d'installation de phpMyAdmin, où vous devriez trouver un sous-répertoire appelé sql.
  5. Dans sqlvous trouverez un fichier appelé create_tables.sql. Ouvrez-le dans un éditeur de texte.
  6. Dans phpMyAdmin, sélectionnez la phpmyadminbase de données et cliquez sur l'onglet "SQL".
  7. Copiez / collez l'intégralité du texte create_tables.sqldans la zone de texte et exécutez la requête.
  8. Ouvrez le config.inc.phpfichier dans le répertoire d'installation de phpMyAdmin et ajoutez les lignes suivantes (ou modifiez les paramètres existants s'ils y sont 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 session afin que le message ne disparaisse pas tant que vous ne faites pas ceci:

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

Problème résolu.

DaveRandom
la source
3
+1 pour la "déconnexion et reconnexion". J'ai perdu cinq minutes sans me rendre compte que je devais faire ça.
Matthew G
1
@MatthewG Oui, le fichier de configuration est chargé dans votre session au moment où vous vous connectez pour réduire les E / S disque, de sorte que ^^ s'applique à toutes les modifications que vous pourriez apporter au fichier de configuration PMA
DaveRandom
14
Pour une raison quelconque, ma version de phpmyadmin a les noms de table comme "pma__bookmark" et ainsi de suite avec 2 "traits de soulignement". Si quelqu'un a le même, alors vous devriez éditer le "config.inc.php" en conséquence. Et BTW, le fichier de configuration est situé dans le répertoire "/ etc / phpmyadmin" dans Ubuntu
ajaybc
6
Sur Ubuntu 14.04, l'emplacement de create_tables.sql est à l'intérieur de /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz
karlingen
5
C'est une excellente réponse (la 100e +de ma part;)). Cependant, je ne trouve pas les exemples répertoire indiqué à l' étape 4. Au contraire , il était là: /usr/share/doc/phpmyadmin/exampleset là je trouve le fichier sql comprimé: create_tables.sql.gz.
Majid Fouladpour le
134

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 package phpmyadmin contient le script pour effectuer cette opération pour vous, tout ce dont il a besoin est un utilisateur avec des autorisations. sudo n'est pas obligatoire si vous êtes connecté en tant que root, bien sûr.

EDIT: Cela pourrait valoir la peine d'essayer de supprimer l'utilisateur actuel de phpmyadmin.

Ou Cohen
la source
2
Cela a fonctionné pour moi, je devais simplement réinstaller la base de données demandée. Merci. (Ubuntu 12.04)
ino
17
J'ai dû taper "pma" au lieu de "phpmyadmin" pour l'utilisateur de contrôle pendant la configuration pour que cela fonctionne.
Hardell
1
Merci, vous avez sauvé ma journée :) hehe
Jeremy Dicaire
2
Suppression de l'utilisateur 'phpmyadmin' en premier et exécution de 'sudo dpkg-reconfigure phpmyadmin' après avoir travaillé pour moi. Merci!
bshea
1
Remarque: cela effacera tous les serveurs configurés, le cas échéant.
Raptor
23

Il suffit de commenter l'ensemble des blocs de code «Utilisateur pour les fonctionnalités avancées» et «Fonctionnalités avancées de phpMyAdmin» config.inc.php.

traînée
la source
Une explication à cela? Comment et pourquoi cela fonctionne-t-il?
Huey
1
@Ben: Parfois, tout compte;)
séquence
Dans quels fichiers ... C'est tellement peu informatif! Mais tout le monde comprend donc je me sens stupide et incapable de le réparer lol double perdre!
Jamie Hutber
2
Ce serait config.inc.php
Rocoty
1
N'existe rien comme à l' User for advanced features" and "Advanced phpMyAdmin featuresintérieurphpmyadmin/config.inc.php
AN
11

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

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

Sur les serveurs 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 phpmyadminen admin, le nom d'utilisateur que j'ai créé pour maintenir ma base de données via phpmyadmin, et j'ai mis 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/

Ben
la source
4

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

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

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

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 trouvé était 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 repris dans l'installation sur ubuntu donc la variable $ 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 à la ligne de commande, connectez-vous à mysql en utilisant la commande suivante: mysql -u phpmyadmin -p essayez un mot de passe vide J'ai trouvé que l'accès était refusé, entrez à nouveau la commande en utilisant le mot de passe que vous avez défini lors de l'installation. S'il se connecte, vous savez maintenant quel est le mot de passe.
  2. Editez /etc/phpadmin/config-db.php et changez $ dbpass = ''; to $ dbpass = 'Votre mot de passe'; et enregistrez le fichier.
  3. Modifiez /etc/dbconfig-common/phpmyadmin.conf changez dbc_dbpass = '' ; to dbc_dbpass = 'Votre mot de passe'; et enregistrez le fichier. Fermez votre navigateur et rechargez, vous trouverez maintenant que le message a disparu.
Clive Wi
la source
0

Le problème est que le mot de passe de l'utilisateur du 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 ici le mot de passe souhaité pour l'utilisateur pma:

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

$ cfg ['Serveurs'] [$ i] ['controlpass'] = 'votre_nouveau_phpmyadmin_pass';

(devrait être comme à 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

Modifier l'utilisateur: pma

Sélectionnez "Mot de passe" dans la liste des fonctions (colonne de gauche) et définissez "votre_nouveau_phpmyadmin_pass" sur la colonne de droite et appuyez sur OK.

Redémarrez le serveur mysql.

Maintenant, le message devrait disparaître.

Tarik
la source
0

Je fais simplement des modifications sur le fichier config.inc.php. Il y a un mot de passe erroné dans ce lien $ cfg ['Servers'] [$ i] ['password'] = 'votre mot de passe'; et maintenant c'est parfaitement travaillé.

Mohit Sharma
la source
veuillez modifier votre question et ajouter plus de détails. C'est de mauvaise qualité.
Mathews Sunny
Ce qui précède est la résolution, je n'ai pas suivi les étapes ci-dessus. Je vais simplement dans le répertoire config.inc.php et j'ouvre ce fichier config.inc.php dans le bloc-notes et le changement de cette ligne $ cfg ['Servers'] [$ i] ['password'] = 'your password'
Mohit Sharma
J'ai vu que le mot de passe était mentionné qu'il était erroné et j'ai mis à nouveau le mot de passe correct, je l'ai sauvegardé et réexécuté le phpmyadmin et il fonctionne correctement maintenant
Mohit Sharma
0

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

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

aussi pour l'erreur Blowfish trop courte

éditez /var/lib/phpmyadmin/blowfish_secret.inc.php et rallongez la clé

Royce
la source
0

sur ubuntu 18.04 en etc/phpmyadmin/config.inc.php commentaire tout le bloc

Facultatif: utilisateur pour les fonctionnalités avancées

boaz
la source
-1

Ayant juste installé le XAMPP aujourd'hui, j'ai décidé d'utiliser un autre port par défaut pour mysql, ce qui était horrible. Assurez-vous d'ajouter ces lignes à phpMyAdmin config.inc.php:

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

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