如何在 phpmyadmin 中更改时间限制(登录)
Posted
技术标签:
【中文标题】如何在 phpmyadmin 中更改时间限制(登录)【英文标题】:How to change time limit in phpmyadmin (logging in) 【发布时间】:2011-02-16 06:46:17 【问题描述】:我使用 phpmyadmin 创建 mysql 数据库。我已经在 config.inc.php 中将 auth 类型设置为 cookie。 如何更改时间限制,以便即使我登录了几个小时都处于空闲状态,也不需要我再次登录。
【问题讨论】:
应该在serverfault.com询问 【参考方案1】:我知道这个问题已经过时了,但上面的“选定”答案实际上并不起作用。这只是设置会话数据被删除的时间。
在尝试这个并意识到它失败后,我花了一些时间阅读 phpmyadmin 文档并找到了这个:
$cfg['LoginCookieValidity'] = 86400;
$cfg['LoginCookieStore'] = 0;
第一行是自动注销前的时间量。这些值需要在您的 phpmyadmin 安装文件夹中设置,在文件 config.inc.php
中。
它们在我的文件中根本不存在,但在将它们添加到底部后它可以正常工作。第一个变量定义了您在几秒钟内注销的时间 - 我将我的设置为 1 天。第二个变量是 cookie 的持续时间。 0 表示 cookie 会持续到您关闭浏览器。
设置这两个变量会产生预期的效果。您可以将两者都设置为某个疯狂的数字并且从不登录,但这会非常不安全。
【讨论】:
很奇怪,新版本的phpMyAdmin已经从设置->功能选项卡中删除了这个设置。【参考方案2】:Ubuntu 的快速解决方案:
// 编辑php.ini
并查找session.gc_maxlifetime
须藤 vi /etc/php5/apache2/php.ini
// 设置为 24 小时 session.gc_maxlifetime = 86400
// 编辑config.inc.php
并查找$cfg['LoginCookieValidity']
须藤 vi /etc/phpmyadmin/config.inc.php
// 设置为 24 小时 $cfg['LoginCookieValidity'] = 86400;
// 重启网络服务器 sudo service apache2 重启
【讨论】:
【参考方案3】:在我的情况下(4.3.8)只需将 config.inc.php
cookie
替换为 config
并添加 2 行,如下所示:
/*
* First server
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['username'] = 'root'; //add this line
$cfg['Servers'][$i]['password'] = 'root'; //add this line
【讨论】:
在基于 debian 的系统上,地址为/etc/phpmyadmin/config.inc.php
。【参考方案4】:
我终于找到了窍门,假设你至少有 4.3.X 版本:
首先,登录 phpMyAdmin,登录后,点击Databases (位于顶部菜单)
然后在输入文本Create database上,插入phpmyadmin并点击Create (你可以选择你想要的字符集,这个是可选的)
创建数据库后,在列表中单击它(应该与您的其他数据库一起出现)
单击 SQL 并将 create_tables.sql 的内容插入到您的目录 phpMyAdmin 中:
/phpMyAdmin-(yourversion)-all-languages/sql/create_tables.sql
您可以选择将其转储到命令行(终端)中:
mysql phpmyadmin -u myMysqluser -pMypassword < create_tables.sql
现在完成了,打开您的 config.inc.php 并取消注释这两行:
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
请注意,如果您不取消注释其他 $cfg['Servers'][$i],phpmyadmin 将返回:
phpMyAdmin配置存储未配置完整, 一些扩展功能已被停用。找出为什么。要么 或者转到任何数据库的“操作”选项卡进行设置。
这只是关于其他可用选项的警告。 (如果你不需要他们,让他们评论)
注销并再次登录 phpMyAdmin 并转到 Settings (位于 Import 和 Replication 之间的顶部菜单) 并单击 Features 你将看到选项:
Login cookie validity
你必须在几秒钟内输入 cookie 的有效性。
点击Apply就完成了,该用户的记录会保存在之前创建的数据库(phpmyadmin)的pma__userconfig表中,记录 看起来像这样:
"LoginCookieValidity":21600,"Server\/hide_db":"","collation_connection":"utf8mb4_unicode_ci"
如果你的 cookie 的有效期(以秒为单位)大于你的 session_gc_maxlifetime,phpMyAdmin 会返回一个警告:
你的 PHP 参数 session.gc_maxlifetime 低于 cookie 在 phpMyAdmin 中配置的有效性,因此,您的登录可能 早于 phpMyAdmin 中的配置过期
session_gc_maxlifetime 位于您的 php.ini,如果出现上述警告,请更改它并重新启动您的网络服务器。
【讨论】:
这正是我正在寻找的!非常感谢!【参考方案5】:您可以完全避免 cookie 身份验证并使用
$cfg['Servers'][$i]['auth_type'] = 'config';
在phpmyadmin
文件夹下的config.inc.php
文件中。
这将使您永远保持登录状态。
【讨论】:
【参考方案6】:寻找这个:
ini_set('session.gc_maxlifetime', '3600');
根据 cmets - 您可以在 php.ini 文件中找到它或在您设置会话的脚本中运行上述语句
【讨论】:
你能指定在哪里可以找到它吗? @user225269:您可以在php.ini
文件中找到它,或者在您设置会话的脚本中运行上述语句。
@Sarfraz 所以我可以在主 phpmyadmin 文件中的某个位置设置它,以便在加载时使用这些设置?以上是关于如何在 phpmyadmin 中更改时间限制(登录)的主要内容,如果未能解决你的问题,请参考以下文章
如何限制对 phpMyAdmin 中特定数据库用户帐户的访问?