J'espère que quelqu'un pourra m'aider, car j'ai interrogé le Web sans succès ni réponse concrète à cette erreur. J'utilise Windows et Xampp. Voici l'erreur que j'ai après avoir récemment importé la base de données dans phpmyadmin…
#1142 - SELECT command denied to user ''@'localhost' for table 'pma_table_uiprefs'
Après avoir importé la base de données, tout se passe bien dans phpmyadmin jusqu'à ce que je me déconnecte puis me reconnecte, c'est là que réside le problème. Lorsque je clique sur l'une des tables de la base de données importée, j'obtiens les erreurs suivantes…
SELECT 'prefs'
FROM 'phpmyadmin'.'pma_table_uiprefs'
WEHRE 'username' = 'root'
AND 'db_name' = 'afdb'
AND 'table_name' = 'role'
#1142 - SELECT command denied to user ''@'localhost' for table 'pma_table_uiprefs'
Merci encore d'avoir pris le temps de lire mon post et j'espère que quelqu'un pourra m'aider avec cette erreur.
La table pma_table_uiprefs contient les préférences de l'utilisateur. Dans le fichier config.inc.php de phpMyAdmin, l'accès à cette table (et aux autres tables de la mémoire de configuration) est effectué via l'utilisateur de contrôle. Dans votre cas, le paramètre controluser est vide et la requête échoue donc.
Pour résoudre ce problème à court terme, insérez les caractères "//" dans config.inc.php au début de cette ligne:
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
puis déconnectez-vous et reconnectez-vous.
Pour une solution à long terme, configurez correctement le stockage de configuration, voir http://docs.phpmyadmin.net/en/latest/setup.html#phpmyadmin-configuration-storage
Il y a une autre façon de résoudre ce problème.
Suivez les instructions de http://docs.phpmyadmin.net/fr/latest/setup.html#phpmyadmin-configuration-storage :
1.- J'ai ouvert le fichier xampp\phpMyAdmin\config.inc.php et trouvé les lignes suivantes:
/* User for advanced features */\\
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = '';
2.- Puis j'ai observé dans phpmyadmin les tableaux suivants:
BASE DE DONNEES: phpmyadmin
TABLES: Pma_bookmark.
3.- Je lance cette instruction SQL:
GRANT SELECT , INSERT , UPDATE , DELETE ON phpmyadmin.* TO `pma`@`localhost` IDENTIFIED BY ''
Et ça a fonctionné.
Sous Ubuntu, essayez dpkg-reconfigure phpmyadmin et recréez la base de données phpmyadmin. J'ai installé en utilisant ansible et cela n'a pas été fait.
Ouvrez le fichier config.inc.php à partir de C:\xampp\phpmyadmin
Placez les caractères "//" dans config.inc.php au début de la ligne ci-dessous:
$ cfg ['Servers'] [$ i] ['pmadb'] = 'phpmyadmin';
Exemple: // $ cfg ['Serveurs'] [$ i] ['pmadb'] = 'phpmyadmin';
Rechargez votre phpmyadmin chez localhost.
Je tombe sur ce problème et je le résous en me déconnectant de phpMyAdmin et de nouveau.
Jetez un oeil à la requête de message d'erreur:
SELECT command denied to user ''@'localhost' for table 'pma_table_uiprefs'
Cela est dû au fait que MySQL a refusé l'accès à l'utilisateur "" (vide) sur le serveur localhost
. Le paramètre par défaut consiste à bloquer toutes les demandes d'utilisateurs anonymes.
En vous déconnectant, nous forçons phpMyAdmin à "oublier" l'utilisateur actuel et nous laissons saisir les informations de connexion pour le serveur MySQL.
Si vous utilisez XAMPP Path ($ cfg ['Servers'] [$ i] ['pmadb'] = 'phpmyadmin';) C:\xampp\phpmyadmin\config.inc.php (probablement XAMPP1.8 à la ligne Numéro 34)
Une autre solution: Je suis confronté au même problème de type "# 1142 - La commande SELECT est refusée à l'utilisateur '' @ 'localhost' pour la table 'pma_recent'"
Une façon de résoudre ce problème consiste à vous connecter à votre utilisateur root dans phpmyadmin, accédez à l'onglet Utilisateurs, recherchez et sélectionnez l'utilisateur spécifique qui ne peut pas accéder aux requêtes de sélection et autres. Cochez ensuite toutes les cases et cliquez simplement sur OK. Maintenant, cet utilisateur peut sélectionner, mettre à jour et tout ce qu'il veut.
Je sais que cela peut paraître absurde, mais j'ai résolu un problème similaire en créant la base de données sous le nom "phpMyAdmin" et non pas "phpmyadmin" (le cas de la note). Peut-être y at-il un problème de respect de la casse sous Windows?
Commenter cette ligne a fonctionné pour moi: $ cfg ['Servers'] [$ i] ['pmadb'] = 'phpmyadmin'; Mais j'ai trouvé plusieurs fichiers config.inc.php sur mon ordinateur parce que j'en ai plusieurs installations de MySQL et php haha. Je l'ai changé en trouvant celui sous Xampp en cliquant simplement sur le bouton de configuration sous Apache pour le panneau de configuration de Xampp, puis en commentant la ligne. //