#1142 - 对表'pma_table_uiprefs'的用户''@ localhost'拒绝SELECT命令

时间:2013-08-25 01:30:18

标签: mysql phpmyadmin

希望有人可以帮助我,因为我已经查询了网络,没有成功或对此错误的具体答案。我正在使用Windows和Xampp。这是我最近将数据库导入phpmyadmin后得到的错误...

#1142 - SELECT command denied to user ''@'localhost' for table 'pma_table_uiprefs'

导入数据库后,在phpmyadmin中一切正常,直到我退出然后重新登录,这就是问题所在。当我点击导入数据库中的任何表时,我收到以下错误......

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'

再次感谢您花时间阅读我的帖子,希望有人可以帮我解决这个错误。

19 个答案:

答案 0 :(得分:30)

pma_table_uiprefs表包含用户首选项。在phpMyAdmin的config.inc.php中,通过控制用户访问此表(以及配置存储中的其他表)。在您的情况下,controluser参数为空,因此查询失败。

对于短期修复,请将config.inc.php中的“//”字符放在此行的开头:

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

然后注销并重新登录。

要进行长期修复,请正确设置配置存储,请参阅http://docs.phpmyadmin.net/en/latest/setup.html#phpmyadmin-configuration-storage

答案 1 :(得分:18)

这一定会对您有所帮助

1。打开PhpMyAdmin。

2。在PhpMyAdmin徽标下的左侧,单击第二个图标(“空会话数据”)。

3。就这样。

答案 2 :(得分:7)

还有另一种解决方法。

按照http://docs.phpmyadmin.net/en/latest/setup.html#phpmyadmin-configuration-storage中的说明进行操作:

1.-我选择了xampp \ phpMyAdmin \ config.inc.php文件并找到以下行:

/* User for advanced features */\\

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

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

2.-然后我在phpmyadmin中观察到以下表格:

数据库:phpmyadmin

表: 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.-我运行这个sql语句:

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

它有效。

答案 3 :(得分:4)

在ubuntu上,尝试dpkg-reconfigure phpmyadmin并重新创建phpmyadmin数据库。我使用ansible安装,但没有完成。

答案 4 :(得分:3)

  1. 从C:\ xampp \ phpmyadmin打开config.inc.php文件

  2. 将config.inc.php中的“//”字符放在下一行的开头:

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

    示例:// $ cfg ['Servers'] [$ i] ['pmadb'] ='phpmyadmin';

  3. 在localhost重新加载您的phpmyadmin。

答案 5 :(得分:3)

我偶然发现了这个问题,我只是通过注销的phpMyAdmin再次解决了这个问题。

Click here to log out of phpMyAdmin

说明

查看错误消息查询:

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

这是因为MySQL拒绝访问用户"" (空白)在服务器localhost。默认设置是阻止来自匿名用户的所有请求。

通过注销,我们强制phpMyAdmin到"忘记"当前用户,让我们输入MySQL服务器的登录凭据。

答案 6 :(得分:2)

它说您的用户是空白的,需要在 /phpMyAdmin/config.inc.php 上设置用户。

将用户添加到行

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

答案 7 :(得分:2)

我遇到了同样的问题,它看起来很简单,但解决了我的问题。我已经尝试过这里推荐的所有解决方案,但是就在一天前没有问题。所以我认为问题可能出在Session数据上。我试图停止并运行apache和mysql服务,但是它也没有起作用。然后我意识到phpMyAdmin左侧徽标的正下方有按钮。 “主页”旁边的按钮; “空会话数据”解决了我所有的问题。

答案 8 :(得分:1)

如果您使用XAMPP路径($ cfg ['Servers'] [$ i] ['pmadb'] ='phpmyadmin';) C:\ xampp \ phpmyadmin \ config.inc.php(第34行可能是XAMPP1.8)

另一种解决方案: 我遇到同样类型的问题“#1142 - SELECT'命令被拒绝用户'''localhost'用于表'pma_recent'”

  1. 打开phpmyadmin ==>设置==>导航框架==>最近使用的表==> 0(设置值0)==>保存

答案 9 :(得分:1)

这是个老问题,但最近我解决了这个问题。解决办法是:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

在您的终端中运行此命令行并提供您的“root”密码,希望您能解决问题。要了解更多信息,请访问 https://dev.mysql.com/doc/refman/8.0/en/mysql-tzinfo-to-sql.html

答案 10 :(得分:1)

您在phpMyAdmin SQL部分中使用此命令:

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

答案 11 :(得分:1)

只需注销phpMyAdmin,这就是您要做的一切

答案 12 :(得分:0)

我在托管应用程序后遇到了同样的问题,我通过在 Cpanel 中为数据库用户提供所需的权限来解决它。示例如下图所示。请务必选择适当的权限。

enter image description here

答案 13 :(得分:0)

我的数据库托管公司禁用了清除会话的选项,因此上述解决方案对我不起作用。 有效的是创建一个新用户并将该新用户权限授予数据库。 它对我有用。旧的用户名和密码仍然无效,但新创建的用户名和密码有效

答案 14 :(得分:0)

先尝试此操作-'清除缓存'。我遇到过同样的问题。我被指示清除缓存。奏效了。

答案 15 :(得分:0)

另一个选项是禁用此功能。如果我们仅允许读取服务器上的访问权限 禁用pmadb

  1. 添加服务器配置
$cfg['Servers'][$i]['userconfig'] =false;
$cfg['Servers'][$i]['pmadb'] = false;
$cfg['Servers'][$i]['bookmarktable'] = false;
$cfg['Servers'][$i]['relation'] = false;
$cfg['Servers'][$i]['table_info'] = false;
$cfg['Servers'][$i]['table_coords'] = false;
$cfg['Servers'][$i]['pdf_pages'] = false;
$cfg['Servers'][$i]['column_info'] = false;
$cfg['Servers'][$i]['history'] = false;
$cfg['Servers'][$i]['table_uiprefs'] = false;
$cfg['Servers'][$i]['tracking'] = false;
$cfg['Servers'][$i]['designer_coords'] = false;
$cfg['Servers'][$i]['userconfig'] = false;
$cfg['Servers'][$i]['recent'] = false;
  1. 并刷新会话(专用标签浏览器或其他)

答案 16 :(得分:0)

解决此问题的一种方法是在phpmyadmin中登录root用户,转到“用户”选项卡,查找并选择无法访问select和其他查询的特定用户。然后勾选所有复选框,然后单击go。现在,用户可以选择,更新和他们想要的任何东西。

答案 17 :(得分:0)

评论这条线对我有用:$ cfg ['Servers'] [$ i] ['pmadb'] ='phpmyadmin'; 但我在我的计算机上发现了几个config.inc.php文件,因为我有几个安装的MySQL和php哈哈。我通过在Xampp控制面板上单击Apache下的配置按钮然后注释掉该行来找到Xampp下的那个。 //

答案 18 :(得分:0)

我知道这可能听起来很荒谬,但我通过将数据库创建为“phpMyAdmin”而不是“phpmyadmin”(注意案例)解决了类似的问题 - 也许在Windows下有一些关于区分大小写的内容?