【问题标题】:phpMyAdmin ERROR: mysqli_real_connect(): (HY000/1045): Access denied for user 'pma'@'localhost' (using password: NO)phpMyAdmin 错误:mysqli_real_connect():(HY000/1045):用户'pma'@'localhost'的访问被拒绝(使用密码:否)
【发布时间】:2018-03-25 23:13:55
【问题描述】:

我通过 XAMPP 连接 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
 */

?>

我已经从命令行两次从 MySql 重置密码,并将更改添加到上面的代码和 php.ini 文件中,但每次都会返回错误。有什么帮助吗?

【问题讨论】:

  • 错误出现在图片中,点击蓝色的“在此处输入图片描述”即可访问。
  • 你的mysql密码是多少?

标签: php mysqli phpmyadmin xampp


【解决方案1】:

您需要在 mysql 中创建用户“pma”或更改此行(mysql 的用户和密码):

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

Linux:/etc/phpmyadmin/config.inc.php

【讨论】:

  • 这解决了错误谢谢
【解决方案2】:

将此行添加到文件xampp\phpMyAdmin\config.inc

$cfg['Servers'][$i]['port'] = '3307';

这里,我的端口是3307,你可以改成你的。

【讨论】:

  • 我一直在运行两个版本的mysql,并设置了不同的端口。这对我有用,谢谢
  • 感谢山姆。在使用 Xampp 和 oracle mysql 时提供帮助
【解决方案3】:

在终端中,以 root 身份登录 MySQL。您可能在第一次安装 MySQL 时创建了 root 密码,或者密码可能为空,在这种情况下,您只需在提示输入密码时按 ENTER 即可。

 sudo mysql -p -u root

现在使用您选择的用户名添加一个新的 MySQL 用户。在这个例子中,我们称它为 pmauser(对于 phpmyadmin 用户)。确保将 password_here 替换为您自己的。您可以在此处生成密码。这里的 % 符号告诉 MySQL 允许该用户从任何地方远程登录。如果您想提高安全性,可以将其替换为 IP 地址。

CREATE USER 'pmauser'@'%' IDENTIFIED BY 'password_here';

现在我们将授予新用户超级用户权限。

GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'%' WITH GRANT OPTION;

然后转到config.inc.php(在ubuntu中,/etc/phpmyadmin/config.inc.php)

/* 高级功能的用户 */

$cfg['Servers'][$i]['controluser'] = 'pmauser'; 
$cfg['Servers'][$i]['controlpass'] = 'password_here';

【讨论】:

  • 仅作为建议更改:CREATE USER 'pmauser'@'localhost' IDENTIFIED BY 'password_here';和: 将所有权限授予 . 到 'pmauser'@'localhost' 与 GRANT 选项;只允许从本地主机连接这个用户。
【解决方案4】:

将这些行添加到文件xampp\phpMyAdmin\config.inc

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

【讨论】:

    【解决方案5】:

    我的默认 3306 端口正在使用中,所以我将其更改为 8111,然后出现此错误。我已经通过添加修复它

    $cfg['Servers'][$i]['port'] = '8111';
    

    进入 config.inc.php 。如果您使用不同的端口号,请设置您的。

    【讨论】:

      【解决方案6】:

      Linux / Ubuntu: 如果通过 apt 安装 phpmyadmin: sudo apt-get install phpmyadmin php-mbstring

      可以检查/etc/phpmyadmin/config-db.php 以更改用户凭据。

      $dbuser='pma';
      $dbpass='my_pass';
      $basepath='';
      $dbname='phpmyadmin';
      $dbserver='localhost';
      $dbport='3306';
      $dbtype='mysql';
      

      【讨论】:

        【解决方案7】:

        您的配置中定义的 controluser 连接失败,紧接着:

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

        【讨论】:

          【解决方案8】:

          我通过在 my.ini 中添加行 skip-grant-tables 解决了这个问题:

          # The MySQL server
          [mysqld]
          skip-grant-tables
          port= 3306
          ...
          

          在 XAMPP 控制面板 > 部分“MySQL”> 配置 > my.ini

          【讨论】:

            【解决方案9】:

            我在全新安装 VestaCP 时遇到了同样的错误。我按照this video 上的说明解决了这些问题。

            1. 转到phpmyadmin-fixer 并运行相应的命令。
            2. 重启 Apache、NGINX 和 MySQL 服务器。
            3. 就是这样!

            【讨论】:

              【解决方案10】:

              聚会可能迟到了 - 另外,此答案适用于像我一样从谷歌获得此主题的 LAMP 用户

              基本上,问题在于 PMA 正在尝试使用不存在的用户连接到 SQL。

              在 /etc/phpmyadmin/config-db.php,你会发现 2 个变量:$dbuser 和 $dbpass。 那些指定 PMA 尝试连接的 MySQL 用户和密码。

              现在,使用一些有效的用户名/密码进行连接(或者如果您从 localhost 连接,则只需“root”),创建一个具有全局权限的新用户(例如 - %PMA User% 和密码 %Some Random Password%),然后在上述文件集中:
              $dbuser = %PMA 用户% ;
              $dbpass = %一些随机密码%;

              您还可以在那里更改其他内容,例如服务器地址 ($dbserver)、端口($dbport,它可能不是您机器上的默认端口)等等。

              【讨论】:

                【解决方案11】:

                我刚刚在 MAC 上完成了 XAMPP 的设置,遇到了同样的问题。我刚刚修好了。 目前尚不清楚您使用的是什么操作系统,但您需要运行 XAMPP 安全性。你表示你已经这样做了,但无论如何它都是 MAC 的

                sudo /Applications/XAMPP/xamppfiles/xampp security 
                

                为您收到的问题设置密码。

                在你的 phpmyadmin 中导入“create_tables.sql”.. 可以在 ./phpmyadmin/sql 文件夹中找到。

                接下来打开./phpmyadmin文件夹中的config.inc.php文件。

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

                确保注销并登录以反映 phpmyadmin 中的更改

                【讨论】:

                  【解决方案12】:

                  如果您的端口是 3307(基于您的端口)

                  在 xampp\phpMyAdmin\config.inc 中添加这一行:在 i++ 之后

                  $cfg['Servers'][$i]['port'] = '3307';
                  

                  【讨论】:

                    【解决方案13】:

                    我更改了文件 config.inc.php

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

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

                    它成功了!

                    【讨论】:

                      【解决方案14】:

                      考虑将主机条目 127.0.0.1 更改为 localhost 甚至服务器的 IP 地址。

                      $cfg['Servers'][$i]['host']
                      

                      【讨论】:

                        【解决方案15】:

                        此错误是由 /usr/share/phpmyadmin/libraries/sql.lib.php 中的一行代码引起的。

                        似乎当我使用 apt 安装 phpMyAdmin 时,存储库中的版本(phpMyAdmin v4.6.6)与 PHP 7.2 不完全兼容。官方网站上有一个更新的版本(写作时为 v4.8),它修复了这些与 PHP 7.2 的兼容性问题。

                        您可以下载最新版本并手动安装或等待存储库更新为较新版本。

                        或者,您可以对 sql.lib.php 进行小幅更改以修复错误。

                        首先,编辑前备份sql.lib.php。

                        1-interminal:

                        sudo cp /usr/share/phpmyadmin/libraries/sql.lib.php /usr/share/phpmyadmin/libraries/sql.lib.php.bak
                        

                        2-编辑 sql.lib.php。使用 vi:

                        sudo vi /usr/share/phpmyadmin/libraries/sql.lib.php
                        

                        或者使用纳米:

                        sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
                        

                        CTRL + W(对于 nano)或 ? (对于 vi/vim)并搜索 (count($analyzed_sql_results['select_expr'] == 1)

                        将其替换为((count($analyzed_sql_results['select_expr']) == 1)

                        保存文件并退出。 (按 CTRL + X,按 Y 然后按 ENTER(对于 nano 用户)/(对于 vi/vim)按 ESC 然后输入 :wq 然后按 ENTER)

                        【讨论】:

                          【解决方案16】:

                          我正在使用 UniServer Zero XIV 13.x.x UniController XIV V2.3.1:

                          从命令行我这样做了:

                          mysql> CREATE USER 'pmauser'@'%' IDENTIFIED BY 'MyPasswordHere!';
                          Query OK, 0 rows affected (0.07 sec)
                          
                          mysql> GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'%' WITH GRANT OPTION;
                          Query OK, 0 rows affected (0.02 sec)
                          

                          然后我去C:\...\wamp\ZeroXIV_unicontroller_2_3_1\UniServerZ\home\us_opt1\config.inc.php 修改文件有这个:

                          /* PMA User advanced features */
                          //////////$cfg['Servers'][$i]['controluser']    = 'pma';
                          //////////$cfg['Servers'][$i]['controlpass']    = $password;
                          $cfg['Servers'][$i]['controluser']    = 'pmauser';
                          $cfg['Servers'][$i]['controlpass']    = 'MyPasswordHere!';
                          

                          我重新启动了 Apache 和 MySQL。错误消失了!

                          【讨论】:

                            【解决方案17】:

                            清除浏览器中的网站数据。它将被修复。有时当您运行代理、vpns 或其他一些程序时会发生此错误。

                            【讨论】:

                              【解决方案18】:

                              更改端口号。我遵循了这些步骤,它对我有用

                              XAMPP 中的端口号可以通过以下 5 个步骤轻松更改:

                              第 1 步:停止 xampp 服务器,如果它已经在运行。(以避免崩溃)

                              第 2 步:以管理员身份运行记事本并打开这 3 个文件:

                              1. xampp/properties.ini

                              2. xampp/mysql/bin/my.ini

                              3. xampp/php/php.ini

                              第 3 步:按 ctrl+F 并将所有 3306(端口号)替换为 3308(可以是 3307 或 3309 之类的任何内容)。(使用 ctrl+F 这样您就不会错过任何未更改的 3306 端口。否则它不会工作)

                              第 4 步:保存所有文件。

                              第 5 步:现在重新启动 apache 和 mysql。它会工作:)

                              【讨论】:

                                【解决方案19】:

                                这个错误的原因是当我们将 xampp 控制面板中的 MySQL 端口号更改为我们首选的端口号时。

                                【讨论】:

                                【解决方案20】:

                                你必须先改变三个地方你有密码所以请在 $['password'] , $['controlpass'] 中输入你的服务器密码

                                我相信这些代码对你有帮助

                                $cfg['Servers'][$i]['user'] = 'root';
                                $cfg['Servers'][$i]['password'] = 'yourPassword of server;
                                
                                $cfg['Servers'][$i]['host'] = 'localhost:yourPort';
                                
                                $cfg['Servers'][$i]['controluser'] = 'pma';
                                $cfg['Servers'][$i]['controlpass'] = 'yourPassword of server';
                                

                                【讨论】:

                                  猜你喜欢
                                  • 2018-12-10
                                  • 1970-01-01
                                  • 2018-10-08
                                  • 2017-06-28
                                  • 1970-01-01
                                  • 2018-12-12
                                  • 2018-11-22
                                  • 2018-02-09
                                  相关资源
                                  最近更新 更多