自动登录 phpMyAdmin

Posted

技术标签:

【中文标题】自动登录 phpMyAdmin【英文标题】:Auto-login phpMyAdmin 【发布时间】:2011-08-06 23:24:15 【问题描述】:

我们想在 phpMyAdmin 中自动登录用户。现在我们有了一个用 PHP 编写的 Web 界面。用户可以登录。登录后,他们可以单击打开 phpMyAdmin 的菜单中的SQL 链接。有没有办法让他们自动登录?是否可以为 phpMyAdmin 设置 cookie 或让他们使用它? 我们不想关闭 phpMyAdmin 的登录;每个用户都有自己的 mysql 用户/密码组合。所以我们需要将用户名/密码设置传递给 phpMyAdmin。

【问题讨论】:

许多网络托管服务提供商都这样做,但我认为他们构建了自定义身份验证来检查他们的后端登录。不确定是否有任何开箱即用的东西(虽然它可能) 我想,由于 PHPMyAdmin 是开源的,这些站点只是更改代码以接受来自他们自己站点的 POST。但这是一个猜测。 【参考方案1】:

在 /* Authentication type */ 下面的 config.inc.php 中添加代码。它存在于根文件夹中

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = ''; 

【讨论】:

将 'cookie' 更改为 'config' 的第一行是 PMA 记住密码的原因。否则每次都要输入PW!【参考方案2】:

编辑 config.inc.php

位置:/etc/phpmyadmin/config.inc.php

查找打击代码

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

并用blow code替换该行代码

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'your_password';

如果您的密码为 null 或 '' 取消注释该打击线

//$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

然后它会正常工作!

【讨论】:

这是 user 不是 username 。参考:docs.phpmyadmin.net/en/latest/config.html#cfg_Servers_user 糟糕!坏的和坏的!安全原因!【参考方案3】:

您只需将用户名发布在名为pma_username 的字段中,并将密码发布在pma_password 中。或者,如果您使用的是 http 身份验证模式,您可以创建一个包含用户名和密码的链接,例如 http://user:pass@www.host.com/phpmyadmin/...

【讨论】:

见this discussion :) 由于 phpMyAdmin 中存在配置,因此您不应诉诸 hacky 解决方案。此答案之后的答案提供了更好的解决方案。问候,【参考方案4】:

config.inc.php

/* Authentication type */

//$_SERVER["REMOTE_ADDR"] == '::1' (**ipv6**)
//$_SERVER["REMOTE_ADDR"] == '127.0.0.1' (**ipv4**)

if ($_SERVER["REMOTE_ADDR"] == '::1') 
    $cfg['Servers'][$i]['auth_type'] = 'config';
    $cfg['Servers'][$i]['user'] = 'user';
    $cfg['Servers'][$i]['password'] = 'password';
 else 
    $cfg['Servers'][$i]['auth_type'] = 'cookie';

【讨论】:

请不要编辑这篇文章。这个定义很好用。谢谢【参考方案5】:

有时在您的本地环境中工作时,每次登录都很烦人。 为避免这种情况,您可以执行以下操作:

在文件底部添加以下行:

phpmyadmin\config.inc.php

$cfg['LoginCookieValidity'] = 10000; // Keep long validity :)-
$cfg['Servers'][$i]['user']          = 'root'; // Your user name
$cfg['Servers'][$i]['password']      = 'root'; // Your password
$cfg['Servers'][$i]['auth_type']     = 'config';

之后关闭您的数据库服务器并重新启动。 现在检查一下,您会看到您无需输入用户名和密码即可登录。

【讨论】:

【参考方案6】:

如果您需要它进行开发,2020 年的事情会容易得多。只需设置环境变量:

PMA_USER: "the-root"
PMA_PASSWORD: "the-password"

【讨论】:

以上是关于自动登录 phpMyAdmin的主要内容,如果未能解决你的问题,请参考以下文章

text 自动登录phpMyAdmin

关闭 PhpMyAdmin 自动注销

phpmyadmin 登录时间修改

phpmyadmin 自动注销时间

为啥登录后phpmyadmin会重定向到登录页面?

phpMyAdmin 的单点登录