121 votes

#1142 - Commande SELECT refusée à l'utilisateur ''@'localhost'' pour la table 'pma_table_uiprefs'.

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'obtiens 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 va bien dans phpmyadmin jusqu'à ce que je me déconnecte puis me reconnecte, c'est là que le problème se situe. 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.

353voto

josemmo Points 67

Je suis tombé sur ce problème et je l'ai résolu. juste en se déconnectant de phpMyAdmin et se reconnecter.

Click here to log out of phpMyAdmin


EXPLICATION

Jetez un coup d'œil à la requête du message d'erreur :

SELECT command denied to user ''@'localhost' for table 'pma_table_uiprefs'

Ceci est dû au fait que MySQL refuse l'accès à l'utilisateur "" (blank) sur le serveur. localhost . Le paramètre par défaut est de bloquer toutes les demandes des utilisateurs anonymes.

En nous déconnectant, nous forçons phpMyAdmin à "oublier" l'utilisateur actuel et à nous laisser saisir les informations de connexion au serveur MySQL.

163voto

Dhruv Points 874

Cela vous aidera sûrement

1. Ouvrez PhpMyAdmin.

2.Sur le côté gauche, sous le logo de PhpMyAdmin, cliquez sur la deuxième icône (Empty Session Data).

3. C'est tout.

enter image description here

37voto

Marc Delisle Points 3038

La table pma_table_uiprefs contient les préférences des utilisateurs. Dans le fichier config.inc.php de phpMyAdmin, l'accès à cette table (et aux autres tables du stockage de la configuration) se fait par le biais de l'utilisateur de contrôle. Dans votre cas, le paramètre controluser est vide, donc la requête échoue.

Pour une solution à court terme, mettez les caractères "//" dans config.inc.php au début de cette ligne :

    $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';

puis se déconnecter et se reconnecter.

Pour une solution à long terme, configurez correctement le stockage de la configuration, voir http://docs.phpmyadmin.net/en/latest/setup.html#phpmyadmin-configuration-storage

14voto

Andrew F. Points 423

Il existe un autre moyen de résoudre ce problème.

En suivant les instructions de http://docs.phpmyadmin.net/en/latest/setup.html#phpmyadmin-configuration-storage :

1.- I opned xampp \phpMyAdmin\config.inc.php et a 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

TABLEAUX : pma_bookmark pma_column_info pma_designer_coords pma_history pma_pdf_pages pma_recent pma_relation pma_table_coords pma_table_info pma_table_uiprefs pma_tracking pma_userconfig

3.- J'exécute cette instruction sql :

 GRANT SELECT , INSERT , UPDATE , DELETE ON phpmyadmin.* TO  `pma`@`localhost` IDENTIFIED BY  ''

Et ça a marché.

14voto

Hix.botay Points 69

Il dit que votre utilisateur est vide, vous devez configurer l'utilisateur sur /phpMyAdmin/config.inc.php .

Ajouter un utilisateur à la ligne

$cfg['Servers'][$i]['controluser'] = 'root';

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X