J'ai déjà examiné ceci mais depuis que je suis sous Ubuntu 10.04 au lieu de XAMPP et que j'ai déjà créé la base de données phpmyadmin, je peux me connecter via un terminal avec les utilisateurs root et phpmyadmin.
Comment j'ai installé: Sudo apt-get install lampe-serveur ^ Sudo apt-get install phpmyadmin
Je peux me connecter localement sur un terminal à l'aide des utilisateurs root et phpmyadmin . Je peux afficher la page de connexion phpmyadmin . Une page phpinfo.php que j'ai postée sur le serveur fonctionne.
Je me suis connecté avec succès en commutant le protocole sur TCP et en me connectant à "127.0.0.1" au lieu de "localhost" . Je ne parviens toujours pas à me connecter via Unix Socket même si le socket démon MySql est en cours d'exécution.
Étant donné que vous pouvez vous connecter en tant qu'utilisateur controluser sur le terminal, il est fort probable que votre fichier de configuration ne contienne pas le nom d'utilisateur ou le mot de passe approprié pour l'utilisateur controluser.
Ouvrez config.inc.php
dans votre éditeur de texte et examinez les lignes controluser et controlpass - assurez-vous qu'elles correspondent exactement au nom d'utilisateur et au mot de passe que vous utilisez avec succès. Essayez de commenter complètement ces deux lignes pour voir si vous obtenez un message d'erreur différent.
Si vous avez utilisé le gestionnaire de paquets pour l'installation, notez que les fichiers de configuration sont répartis dans /etc/phpmyadmin
et que, si vous avez ajouté manuellement ces lignes, elles risquent d'être remplacées par un autre fichier de configuration. Essayez grep -Ri controluser /etc/phpmyadmin/*
pour voir si cela apparaît dans plusieurs fichiers.
Puisque vous avez utilisé le gestionnaire de paquets, vous devriez le laisser gérer la configuration de la base de données. Essayez de supprimer toutes les modifications apportées aux fichiers de configuration et d'exécuter dpkg-reconfigure -plow phpmyadmin
(il s'agit d'une commande Shell à exécuter à l'invite de commande); cela reconfigurera le paquet phpmyadmin et vous demandera si vous voulez autoriser dbconfig-common à créer les tables phpMyAdmin pour vous ainsi que pour controluser.
Juste commentez la ligne:
$cfg['Servers'][$i]['Host'] = 'localhost';
Essayez-le.
Cela peut également se produire lorsque l'utilisateur avec lequel vous vous connectez, comme dans phpmyadmin, a été mis à jour dans MySQL. Je venais de l'avoir lors de la désinstallation/mise à jour/réinstallation de phpmyadmin et de la modification de certains paramètres MySQL en même temps.
Le correctif consiste à mettre à jour le fichier config-db.php avec les informations de connexion appropriées (nom d'utilisateur, mot de passe, etc.).
Dans Ubuntu 12.04, cela se trouve dans /etc/phpmyadmin/config-db.php.
Des instructions plus détaillées sont disponibles sur http://tehnoblog.org/phpmyadmin-error-connection-for-controluser-as-defined-in-your-configuration-failed/
créer une base de données phpmyadmin
Fichier ouvert
/etc/phpmyadmin/config-db.php
définissez le mot de passe root dans le fichier config-db.php.
$dbuser='root';
$dbpass='password'; // set current password between quotes ' '
$basepath='';
$dbname='phpmyadmin';
$dbserver='';
$dbport='';
$dbtype='mysql';
le problème sera résolu.
Il y a 2 erreurs:
1. La connexion pour controluser, telle que définie dans votre configuration, a échoué
Solution:
une. Terminal ouvert: Sudo gedit /etc/phpmyadmin/config.inc.php
b. et décommentez les lignes suivantes (peut-être que les deux viendront 2 fois selon la version): $ cfg ['Servers'] [$ i] ['AllowNoPassword'] = TRUE;
c. et commentez les lignes suivantes (peut-être que les deux viendront 2 fois dépendent de la version): // $ cfg ['Servers'] [$ i] ['controluser'] = $ dbuser; // $ cfg ['Servers'] [$ i] ['controlpass'] = $ dbpass;
2. Accès refusé pour l'utilisateur 'root' @ 'localhost'
Cela se produira lorsque vous ouvrirez phpmyadmin ou quand vous ouvrirez mysql sur un terminal sans la commande Sudo (et non depuis l’utilisateur root). Cette erreur est due à l'utilisateur root. La raison derrière cette erreur est que votre utilisateur Ubuntu actuel n’a pas de previlages pour ouvrir mysql dans un terminal. Si vous ouvrez mysql avec la commande Sudo, il s'ouvrira mais ne s'ouvrira pas de votre utilisateur actuel. Par exemple:
lenovo @ lenovo-ThinkPad-E460:/etc $ mysql -u root -p Entrez le mot de passe: ERROR 1698 (28000): Accès refusé pour l'utilisateur 'root' @ 'localhost'
Ici, l'utilisateur actuel d'ubuntu est lenovo. Vous devez donc donner des autorisations à votre utilisateur root .
1 - Connectez-vous d'abord dans Sudo mysql
Sudo mysql -u root
2 - Vérifiez vos comptes présents dans votre base de données
SELECT utilisateur, hôte de mysql.user;
+ ------------------ + ----------- + | Utilisateur | Hôte | + ------------------ + ----------- + | admin | localhost | | debian-sys-maint | localhost | | magento_user | localhost | | mysql.sys | localhost | | racine | localhost |
3 - Supprimer le compte root @ localhost actuel
mysql> DROP USER 'racine' @ 'localhost'; Requête OK, 0 lignes affectées (0,00 s)
4 - Recréez votre utilisateur
mysql> CREATE USER 'racine' @ '%' IDENTIFIED BY ''; ;__. Requête OK, 0 ligne affectée (0,00 s)
5 - Donnez des permissions à votre utilisateur et n'oubliez pas de vider vos privilèges
mysql> DONNEZ TOUS LES PRIVILEGES SUR . TO 'root' @ '%'; Requête OK, 0 ligne affectée (0,00 s)
mysql> FLUSH PRIVILEGES; Requête OK, 0 ligne affectée (0,01 seconde)
6 - Quittez mysql et essayez de vous reconnecter sans Sudo
J'espère que cela aidera. Et maintenant, vous pouvez ouvrir phpmyadmin sans mot de passe.
Si vous êtes sur Windows avec xammp, allez à C:\xammp\phpMyAdmin\ config.inc
, ouvrez-le et localisez cette ligne, assurez-vous maintenant
/* User for advanced features*/
$cfg['servers'][$i]['controluser'] = 'pma';
$cfg['servers'][$i]['controlpass'] = '';
et le nom d'utilisateur et le mot de passe utilisateur pma dans la base de données phpMyAdmin sont les mêmes
Lisez la documentation phpmyadmin
Tout d’abord, assurez-vous que vous avez la bonne username
& password
dans ce fichier:
/etc/dbconfig-common/phpmyadmin.conf
Comme indiqué dans /etc/phpmyadmin/config-db.php
:
## database access settings in php format
## automatically generated from /etc/dbconfig-common/phpmyadmin.conf
## by /usr/sbin/dbconfig-generate-include
Ces username
& password
sont utilisés pour accéder au phpmyadmin database
.
Ainsi, phpmyadmin database
devrait avoir une user
avec le même nom et le même mot de passe attribué avec au moins Database-specific privileges
Cela l'a résolu pour moi ....
Sur:
Dans mon cas, j'utilise une connexion socket. En définissant $ cfg ['Servers'] [$ i] ['controlhost'] = ''; (pour vider) le message 'Échec de la connexion pour controluser tel que défini dans votre configuration' a disparu. Je pense que la raison en est que si vous définissez 'controlhost', phpMyAdmin tente d'établir une nouvelle connexion à la base de données, négligeant ainsi le socket.
Dans le code, vous trouvez:
if (! empty($cfg['Server']['controlhost'])
|| ! empty($cfg['Server']['controlport'])
À la fin du bloc if, une nouvelle connexion est établie.