自动登录 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的主要内容,如果未能解决你的问题,请参考以下文章