如何更改phpmyadmin中的时间限制(登录)

问题描述 投票:0回答:7

我使用phpmyadmin创建mysql数据库。我已在 config.inc.php 中将身份验证类型设置为 cookie。 如何更改时间限制,以便即使我登录后闲置数小时也不需要我再次登录。

phpmyadmin
7个回答
43
投票

我知道这个问题已经过时了,但上面的“选定”答案实际上不起作用。这只是设置会话数据被删除之前的时间。

尝试此操作并意识到它失败后,我花了一些时间阅读 phpmyadmin 文档并发现了这一点:

$cfg['LoginCookieValidity'] = 86400;
$cfg['LoginCookieStore'] = 0;

第一行是自动注销之前的时间量。这些值需要在 phpmyadmin 安装文件夹中的文件

config.inc.php
.

中设置

它们根本不存在于我的文件中,但将它们添加到底部后它可以正常工作。第一个变量定义了您注销之前的时间(以秒为单位) - 我将我的设置为 1 天。第二个变量是 cookie 的持续时间。 0 表示 cookie 将持续到您关闭浏览器为止。

设置这两个变量就会达到预期的效果。您可以将两者设置为某个疯狂的数字并且从不登录,但这将非常不安全。


10
投票

Ubuntu 的快速解决方案:


// 编辑

php.ini
并查找
session.gc_maxlifetime

sudo vi /etc/php5/apache2/php.ini

//设置为24小时
session.gc_maxlifetime = 86400


// 编辑

config.inc.php
并查找
$cfg['LoginCookieValidity']

sudo vi /etc/phpmyadmin/config.inc.php

//设置为24小时
$cfg['LoginCookieValidity'] = 86400;


//重启网络服务器
sudo 服务 apache2 重新启动


8
投票

在我的例子(4.3.8)中只需将

config.inc.php
cookie
替换为
config
并添加如下两行:

/*
 * 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

4
投票

我终于找到了窍门,假设你至少有 4.3.X 版本:

首先,登录phpMyAdmin,登录后,点击Databases(位于顶部菜单)

然后在输入文本创建数据库上,插入phpmyadmin并点击创建(您可以选择您想要的字符集,这是可选的)

创建数据库后,在列表中单击它(应该与您的其他数据库一起出现)

单击 SQL 并插入位于目录 phpMyAdmin 的 create_tables.sql 的内容:

/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,然后转到 设置 (位于导入和复制之间的顶部菜单),然后单击 功能,您将看到选项:

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,如果出现上述警告,请更改它并重新启动您的网络服务器。


3
投票

您可以完全避免 cookie 身份验证并使用

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

config.inc.php
文件夹下找到的
phpmyadmin
文件中。

这将使您永远保持登录状态。


0
投票

寻找这个:

ini_set('session.gc_maxlifetime', '3600');

根据评论 - 您可以在 php.ini 文件中找到它,或者在设置会话的脚本中运行上述语句


0
投票

对于使用虚拟机( homestead / laravel )的 5.2.1 版本

phpmyadmin
文件夹中查找

然后复制到此文件

cp config.sample.inc.php to config.inc.php

然后编辑文件

vim config.inc.php

按如下方式编辑该行:

/*
 * First server
 */
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['username'] = 'homestead'; //add this line
$cfg['Servers'][$i]['password'] = 'secret'; //add this line
© www.soinside.com 2019 - 2024. All rights reserved.