【问题标题】:phpMyAdmin access denied for user 'root'@'localhost' (using password: NO)用户'root'@'localhost'的phpMyAdmin访问被拒绝(使用密码:否)
【发布时间】:2017-12-20 01:26:36
【问题描述】:

我无法在 xampp 中连接到我的 MySQL 我有这个错误:

MySQL 说:文档

#1045 - 用户 'root'@'localhost' 的访问被拒绝(使用密码:否) mysqli_real_connect(): (HY000/1045): 用户 'root'@'localhost' 的访问被拒绝(使用密码:否) phpMyAdmin 尝试连接 MySQL 服务器,但服务器拒绝连接。您应该检查配置中的主机、用户名和密码,并确保它们与 MySQL 服务器管理员提供的信息相对应。

CONFIG.INC.PHP 文件

<?php
/*
* This is needed for cookie based authentication to encrypt password in
* cookie
*/
$cfg['blowfish_secret'] = 'xampp'; /* YOU SHOULD CHANGE THIS FOR A MORE SECURE COOKIE AUTH! */

/*
* Servers configuration
*/
$i = 0;

/*
* First server
*/
$i++;

/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';

/* Bind to the localhost ipv4 address and tcp */
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['connect_type'] = 'tcp';

/* User for advanced features */
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = '';

/* Advanced phpMyAdmin features */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';

/*
 * End of servers configuration
 */

?>

【问题讨论】:

    标签: phpmyadmin xampp


    【解决方案1】:

    找到了解决方案,在我刚刚更改的配置文件中

    $cfg['Servers'][$i]['auth_type'] = 'config';
    

    $cfg['Servers'][$i]['auth_type'] = 'HTTP';
    

    【讨论】:

    • 这对我有用。为什么要选择 HTTP 而不是 config?
    • 你是救世主
    【解决方案2】:
    /* Authentication type and info */
    $cfg['Servers'][$i]['password'] = '';<----your password
    

    /* User for advanced features */
    
    $cfg['Servers'][$i]['controluser'] = 'pma';
    
    $cfg['Servers'][$i]['controlpass'] = '';
    

    /* User for advanced features */
    
    $cfg['Servers'][$i]['controluser'] = 'your user';
    
    $cfg['Servers'][$i]['controlpass'] = 'your password';
    

    【讨论】:

      【解决方案3】:

      您可能为用户“root”设置了不同的密码或更改了密码。我有同样的错误:

      mysqli_real_connect(): (HY000/1045): 用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)

      我发现我的 PHPMyAdmin 的 root 密码在 'mysql' 和 'phpmyadmin' 数据库上是不一样的,所以我更新了我的 'phpmyadmin' 数据库的密码,与 'mysql' 数据库相同:

      sudo gedit /etc/phpmyadmin/config-db.php
      

      并更新字段

      $dbuser='root';
      
      $dbpass='myNewPassword'; <-- update your new password here
      

      【讨论】:

      • 我的问题的答案是修复授予用户信息的特权,而不是像@Farhikhteh 所说的那样修复“root”
      • 这解决了我的问题!出于某种奇怪的原因,默认设置的用户名和密码在安装时没有被覆盖,转到 config-db.php 文件导致了我的问题!你救了我!
      【解决方案4】:

      改变值

      $cfg['Servers'][$i]['user'] = 'groot';
      $cfg['Servers'][$i]['password']='groot';
      

      在你的~/xampp/phpMyAdmin/config.inc.php

      这里我的用户名是 groot,密码是 groot

      【讨论】:

        【解决方案5】:

        以前发生在我身上: 转到windows的路径

        C:\xampp\phpMyAdmin\

        转到 linux 的路径:

        /etc/phpmyadmin/

        找到的文件名是:
        配置文件 打开文件
        改变这个:

        ['password'] = ''
        

        到:

        ['password'] = 'root'
        

        这个默认值
        如果您从控制面板更改它可能是任何密码

        【讨论】:

          【解决方案6】:

          按照以下步骤操作 - 1.转到 config.inc.php 文件并找到 - $cfg['Servers'][$i]['auth_type']

          2.将$cfg['Servers'][$i]['auth_type']的值改为'cookie''http'

          3.找到 $cfg['Servers'][$i]['AllowNoPassword'] 并将其值更改为 true

          现在每当您想登录时,输入 root 作为您的用户名,跳过密码并继续按下提交按钮..

          注意-如果您选择身份验证类型作为cookie,那么每当您关闭浏览器并重新打开它时,您都必须再次登录。

          【讨论】:

          • 我已经设置了这个,但是在登录时我正在获取这个错误“无法设置会话 cookie。也许你正在使用 HTTP 而不是 HTTPS 来访问 phpMyAdmin。”
          • @BhavinThummar 在您使用隐身模式时是否有效??
          • 奇怪的是这不是公认的答案,它是最简单和合乎逻辑的。使用此设置(尽管我更喜欢 AllowNoPasswordfalse),您将收到本机 phpMyAdmin 登录表单的提示。使用这种方法,只需将 auth_type 更改为 cookie 即可。显然,在命令提示符下,您将使用mysqladmin -u root password 设置您自己的新安全密码
          【解决方案7】:

          您需要修改config-db.php并将您的密码设置为您提供给用户root的密码,否则如果他没有密码,请留下这个''

          【讨论】:

          • 请使用代码格式,例如在代码格式中添加 config-db.php 为config-db.php。对 'root''' 等值执行相同的操作。如果您可以复制粘贴文件的一部分以及位置,这将非常有帮助。确保在粘贴时删除您的私人信息,例如凭据。
          【解决方案8】:
          $cfg['Servers'][$i]['auth_type'] = 'HTTP';
          $cfg['Servers'][$i]['user'] = 'root';
          $cfg['Servers'][$i]['password'] = '1234';
          

          这也解决了我的问题。它只是自动登录。

          【讨论】:

          • HTTP 登录打开弹出窗口,但登录无效。
          【解决方案9】:

          编辑文件xampp/mysql/bin/my.ini

          添加

          skip-grant-tables
          

          [mysqld]

          【讨论】:

          • 非常危险:“当 MySQL 使用此参数启动时,它完全避免在连接和查询时检查其授权表。这意味着任何人都可以从任何地方登录,并对数据库进行任何操作。 " code.openark.org/blog/mysql/dangers-of-skip-grant-tables
          • 稍后您使用 mysql 查询授予该权限,然后转为跳过授予快速解决方法
          • 投反对票:这样做是个坏主意。您应该重置 root 密码(搜索 stackoverflow,上面有很多帖子)或创建适当的用户,授予适当的权限并配置您 config.inc.php
          【解决方案10】:

          这是不同的解决方案,请检查您的服务是否正常运行,如果 WAMP 图标显示橙色,并且 3 个服务中有 2 个正在运行,则此解决方案将起作用。 根本原因:

          如果在您的系统中存在 mysql,稍后您安装了 WAMP,然后将再次安装一个 MYSQL 作为 WAMP 包,MYSQL 的默认端口是 3306,所以在两个 mysql 中,端口都是 3306,这是一个端口冲突,所以只是更改端口它会正常工作。更改端口的步骤。

          1. 右键单击 WAMP 图标。
          2. 选择工具
          3. 更改 MySql 部分使用的端口中的端口

          【讨论】:

            【解决方案11】:

            如果上述解决方案都不适合您,那么只需进行以下更改。 改变这个

            $cfg['Servers'][$i]['host'] = '127.0.0.1';
            

            $cfg['Servers'][$i]['host'] = 'localhost';
            

            $cfg['Servers'][$i]['auth_type'] = 'config';
            

            $cfg['Servers'][$I]['auth_type'] ='cookies';
            

            它适用于我的情况,也可能适用于你的情况。

            【讨论】:

              【解决方案12】:

              去获取XAMPP->mysql->bin->my.ini

              用编辑器打开文件,在mysql后面加上'skip-grant-tables'。

              【讨论】:

                【解决方案13】:

                按照消息的要求做,在 phpMyAdmin 面板中创建用户 pma@localhost,无需密码

                【讨论】:

                  【解决方案14】:

                  检查/etc/phpmyadmin/config-db.php文件

                  1. 转到终端
                  2. 运行vi /etc/phpmyadmin/config-db.php
                  3. 查资料
                  4. 按 Ctrl + X
                  5. 尝试使用配置文件中的信息通过 Web 再次登录 phpmyadmin。

                  【讨论】:

                    【解决方案15】:

                    请运行并重新配置您的 phpmyadmin

                    sudo dpkg-reconfigure phpmyadmin

                    【讨论】:

                      【解决方案16】:

                      当您在您的机器上安装 WAMPP 时,默认情况下 PhpMyAdmin 的密码为空。 所以把root放在用户部分,密码字段留空。 希望它有效。

                      【讨论】:

                        【解决方案17】:

                        如果您使用 macbookpro 并在 XAMPP 上收到此错误,那么您还需要更改文件 config.inc.php 的权限。抱歉,我是 macbook pro 上 xampp 的第一次用户,不知道它的目录结构和其他详细信息,所以为第一次使用的用户添加此答案。

                        从 XAMPP 界面单击“转到终端”并从那里使用以下命令

                               root@debian: cd /opt/lampp/phpmyadmin
                        

                        在此目录中,您将找到 config.inc.php 现在使用 chmod 777 config.inc.php,请注意,您需要使其可写,您可以使用等效代码代替 777。我使用的是 777。

                               root@debian: chmod 777 config.inc.php
                        

                        现在从资源管理器或网络驱动器打开文件到任何编辑器进行以下更改 -

                        1. 在文件中搜索“身份验证类型”,您会在评论中找到它

                        2. 您会在此评论下方找到

                           $cfg['Servers'][$i]['auth_type'] = 'config';
                           $cfg['Servers'][$i]['user'] = 'root';
                           $cfg['Servers'][$i]['password'] = 'here_you_need_to_type_your_root_password';
                          
                        3. 现在这一步之后它仍然对我不起作用,它抱怨配置文件权限,所以我不得不将权限恢复回 -rw-r--r-

                             root@debian: chmod 644 config.inc.php
                          

                        然后它工作正常。

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 2012-10-31
                          • 2016-12-27
                          • 2012-06-17
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多