88

希望有人可以帮助我,因为我在网上查询过这个错误没有成功或具体答案。我正在使用 Windows 和 Xampp。这是我最近将数据库导入 phpmyadmin 后遇到的错误...</p>

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

导入数据库后,phpmyadmin 中的一切都很好,直到我注销然后重新登录,这就是问题所在。当我单击导入数据库中的任何表时,我收到以下错误...</p>

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'

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

4

20 回答 20

271

我偶然发现了这个问题,我只是通过注销phpMyAdmin 并再次登录来解决它。

单击此处退出 phpMyAdmin


解释

看一下报错信息查询:

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

这是由于 MySQL 拒绝访问服务器上的用户“”(空白)localhost。默认设置是阻止来自匿名用户的所有请求。

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

于 2017-09-11T08:31:47.903 回答
124

这肯定会帮助你

1.打开 PhpMyAdmin。

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

3.就是这样。

在此处输入图像描述

于 2020-01-06T06:34:10.163 回答
37

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

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

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

然后注销并重新登录。

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

于 2013-08-25T11:24:24.393 回答
14

还有另一种方法可以解决这个问题。

按照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  ''

它奏效了。

于 2014-04-02T13:50:10.397 回答
5
  1. 从 C:\xampp\phpmyadmin 打开 config.inc.php 文件

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

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

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

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

于 2013-09-17T05:11:44.400 回答
5

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

于 2015-12-23T15:48:25.600 回答
5

它说你的用户是空白的,需要设置用户/phpMyAdmin/config.inc.php

将用户添加到行

$cfg['Servers'][$i]['controluser'] = 'root';
于 2021-05-27T01:51:13.813 回答
4

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

另一个解决方案:我面临相同类型的问题“#1142 - SELECT 命令拒绝用户 ''@'localhost' 用于表 'pma_recent'”

  1. 打开phpmyadmin==>设置==>导航框==>最近使用的表格==>0(设置值为0)==>保存
于 2013-08-29T05:52:26.383 回答
3

只需从 PhpMyAdmin 注销 ..

于 2021-10-05T09:01:56.607 回答
3

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

于 2019-10-05T07:32:16.933 回答
3

只需注销 phpMyAdmin,这就是您需要做的所有事情

于 2019-11-05T10:39:31.460 回答
2

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

GRANT SELECT , INSERT , UPDATE , DELETE ON phpmyadmin.* TO  `pma`@`localhost` IDENTIFIED BY  ''
于 2020-02-19T07:41:56.350 回答
2

先试试这个——“清除你的缓存”。我遇到过同样的问题。我被指示清除我的缓存。有效。

于 2019-03-28T16:00:50.480 回答
2

托管应用程序后,我遇到了同样的问题,我通过在 Cpanel 中向数据库用户授予所需的权限来解决它。示例如下图所示。一定要选择适当的权利。

在此处输入图像描述

于 2021-07-24T10:14:19.927 回答
2

这是一个老问题,但最近我已经解决了这个问题。解决方案是:

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

于 2021-04-26T05:10:38.333 回答
1

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

于 2014-05-30T05:45:56.190 回答
1

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

于 2014-07-30T22:30:23.410 回答
1

另一种选择是禁用此功能。如果我们只允许在服务器上访问以读取 禁用 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. 并刷新会话(私人标签浏览器或其他)
于 2019-03-19T02:53:04.383 回答
1

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

于 2021-04-06T06:08:22.013 回答
1

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

于 2016-07-01T15:20:36.020 回答