【问题标题】:#1142 - SELECT command denied to user ''@'localhost' for table 'pma_table_uiprefs'#1142 - 表 'pma_table_uirefs' 拒绝用户 ''@'localhost' 的 SELECT 命令
【发布时间】:2013-08-27 19:14:33
【问题描述】:

希望有人可以帮助我,因为我在网上查询过,但没有成功或对此错误的具体答案。我正在使用 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'

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

【问题讨论】:

  • 我的猜测是用户至少拥有SELECT命令的权限被拒绝,需要通过以管理员权限登录来修改用户权限以允许SELECT命令

标签: mysql phpmyadmin


【解决方案1】:

只需从 PhpMyAdmin 注销..

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      将用户添加到该行

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

      【讨论】:

        【解决方案4】:

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

        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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

            这肯定会帮助你

            1.打开 PhpMyAdmin。

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

            3.就是这样。

            【讨论】:

            • 你是一个救生员.. 最简单最有用的解决方案。
            • 这解决了我的问题 #1142 INSERT 错误。谢谢。
            • 这与投票最高的答案相同。
            【解决方案7】:

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

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

            【讨论】:

              【解决方案8】:

              只需退出 phpMyAdmin,这就是您需要做的所有事情

              【讨论】:

                【解决方案9】:

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

                【讨论】:

                  【解决方案10】:

                  先试试这个 - '清除你的缓存'。我遇到过同样的问题。我被指示清除我的缓存。它奏效了。

                  【讨论】:

                    【解决方案11】:

                    另一个选项是禁用此功能。如果我们只允许读取服务器上的访问 禁用 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. 和刷新会话(私人标签浏览器或其他)

                    【讨论】:

                      【解决方案12】:

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


                      解释

                      看看报错信息查询:

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

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

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

                      【讨论】:

                      • 你是一个救生员!
                      • 你是个救命的人!谢谢你!!
                      • 它也对我有用 :) 非常感谢。
                      • 非常感谢 :-)
                      【解决方案13】:

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

                      【讨论】:

                        【解决方案14】:

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

                        【讨论】:

                          【解决方案15】:

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

                          【讨论】:

                            【解决方案16】:

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

                            【讨论】:

                              【解决方案17】:

                              还有另一种解决方法。

                              按照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_uirefs pma_tracking pma_userconfig

                              3.- 我运行这个 sql 语句:

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

                              它奏效了。

                              【讨论】:

                              • 我不得不注释掉这行“$cfg['Servers'][$i]['controluser'] = 'pma';”和“$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';”为了让 phpmyadmin 加载...然后使用您的查询...取消注释行并刷新...就像一个魅力。
                              • 也为我工作。在我尝试创建一个与现有数据库同名的数据库后出现此错误,并且 phpmyadmin 冻结了我的整个浏览器。
                              • 所以我刚刚执行了这个 sql 语句,现在我根本无法使用 phpmyadmin。它不会启动,也没有给我有关如何修复的信息。
                              【解决方案18】:

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

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

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

                              【讨论】:

                                【解决方案19】:
                                1. 从 C:\xampp\phpmyadmin 打开 config.inc.php 文件

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

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

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

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

                                【讨论】:

                                  【解决方案20】:

                                  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

                                  【讨论】:

                                  • 马克,感谢您提供链接和解决方案。我尝试了几种方法来设置存储,但都没有成功(尽管在我决定导入不同的数据库之前,它已与我的其他数据库正确设置)——我也是使用 phpmyadmin 和 mysql 的新手。我终于把它注释掉了“//”,这对我有用。添加的额外功能会很好,但现在我可以只用最少的。 --本
                                  • 就我而言,我清空了 pmadb 密钥以使其工作。谢谢!
                                  • @machineaddict 抱歉回复晚了,但我有一个类似的未解决问题。您能否提供一个参考资料,让我可以阅读更多相关信息?
                                  • @DanielScott 没有什么可读的。我只是清空了phpmyadmin 表。就是这样!
                                  • @machineaddict 您是否阅读了我在上面的回答中所写的参考资料?
                                  猜你喜欢
                                  • 2017-12-25
                                  • 2012-06-12
                                  • 2011-11-10
                                  • 2013-06-26
                                  • 2016-12-03
                                  • 2013-08-07
                                  • 2016-01-21
                                  • 2013-01-03
                                  • 2016-12-20
                                  相关资源
                                  最近更新 更多