【问题标题】:Why error in phpmyadmin connecting to mysql?为什么 phpmyadmin 连接到 mysql 时出错?
【发布时间】:2020-05-28 07:35:33
【问题描述】:

在我的本地 ubuntu 18 上运行 phpmyadmin 我有错误

#1698 - Access denied for user 'root'@'localhost'

但是在文件 /etc/phpmyadmin/config.inc.php 我更改了连接参数以将默认用户转义为:

$dbuser='MYUSER';
$dbpass='MYPASSWORD';
$basepath='';
$dbname='phpmyadmin';
$dbserver='localhost';
$dbport='3306';
$dbtype='mysql';

在 MYUSER/MYPASSWORD 下,我从我的 php 应用程序连接到我的 sql。 在 information_schema 我运行

GRANT ALL PRIVILEGES ON * . * TO 'lardev'@'localhost'

带输出:

Query executed OK, 0 rows affected.

为什么root用户在错误信息中被引用以及如何修复错误?

谢谢!

【问题讨论】:

    标签: mysql phpmyadmin


    【解决方案1】:

    您放入config.inc.php 的变量不是phpMyAdmin 的正确变量。您可以参考sample configuration filesdocumentation on all configuration directives 或应包含在下载中的文件config.sample.inc.php (or can be viewed at Github),了解有关正确语法的详细信息。

    官方默认是使用一种称为 cookie 的身份验证类型,在尝试登录时会提示您输入用户名和密码(您可以看到这个in action on the demo server)。您的描述听起来像是没有提示您输入用户名,这意味着有人已更改为“配置”身份验证类型,并带有类似$cfg['Servers'][$i]['auth_type'] = 'config'; 的指令相关的区别(除了安全性和您如何登录)是使用 auth_type 配置,您还需要在配置文件中设置用户名和密码。对于 auth_type cookie 或 http,不使用这些值。

    话虽如此,这里是config.inc.php 的更正版本,使用您列出的配置,使用 phpMyAdmin 变量名称:

    <?php
    
    $cfg['Servers'][$i]['auth_type'] = 'config';
    $cfg['Servers'][$i]['user'] = 'MYUSER';
    $cfg['Servers'][$i]['password'] = 'MYPASSWORD';
    

    'localhost' 是默认主机名,which forces the connection to use sockets rather than TCP/IP networking,因此端口被忽略。要使用 TCP/IP 连接,请设置 $cfg['Servers'][$i]['host'] = '127.0.0.1';

    其他变量 $basepath、$dbname 和 $dbtype 没有直接等效于 phpMyAdmin。

    另外,请注意,我建议在任何情况下使用 auth_type cookie 而不是 config,如果您的 Web 服务器将 phpMyAdmin 提供给不是来自本地主机的连接(作为安全措施,否则任何拥有该 URL 的人都可以直接访问您的数据库)。

    【讨论】:

      猜你喜欢
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 2015-05-19
      • 1970-01-01
      • 2021-02-04
      • 2017-12-07
      • 2011-03-14
      • 2011-10-30
      相关资源
      最近更新 更多