MySQL Auto-login phpMyAdmin
在使用MySQL作为自己的数据库之后,我们就需要一个管理工具来帮助我们管理数据库,这时phpMyAdmin就成了我们的首选。
然而,每次访问phpMyAdmin都需要输入用户名和密码,对于经常使用的我们来说不太方便,因此我们需要通过自动登录来减轻这种输入负担。
下面我们就来一步步实现MySQL Auto-login phpMyAdmin。
阅读更多:MySQL 教程
1. 将phpMyAdmin文件拷贝至Web服务器所在文件夹
我们可以到phpMyAdmin官网(https://www.phpmyadmin.net)下载最新的版本,然后将下载得到的phpMyAdmin文件夹拷贝至Web服务器的根目录下。
例如我们将phpMyAdmin文件夹直接放在/var/www/html目录下。
2. 创建一个数据库用户并赋予相关的权限
在mysql命令行中输入以下命令来创建一个新用户,并且赋予该用户对phpMyAdmin数据库的全部权限。
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'phpmyadmin'@'localhost';
FLUSH PRIVILEGES;
3. 创建一个记住登录状态的脚本
我们需要创建一个php脚本来保持phpMyAdmin的登录状态。首先可以进入phpMyAdmin的主目录,然后创建一个名为“keepalive.php”的文件,内容如下:
<?php
// 启动一个会话,以便 _SESSION[] 中的数据能够被保存
session_start();
// 如果已经设置好了_SESSION['pma_auth'] ,那么就直接退出
if(isset(_SESSION['pma_auth'])) {
exit();
}
// 否则尝试使用之前得到的 hash 来登录
require_once('./libraries/common.inc.php');
list(tmp_auth_type, _SESSION['user']) = preg_split('/:/',_SESSION['pma_auth'], 2);
_SESSION['db'] = true;retval = PMA_auth();
// 如果失败,那么就在下面添加一个错误日志
if(retval != TRUE) {
// 在下面修改为phpMyAdmin存放错误日志的路径logfile = './tmp/phpmyadmin_error.log';
fh = fopen(logfile, 'a');
fwrite(fh, 'Failed attempt to automatically login: ' . date('r') . PHP_EOL);
fclose(fh);
exit();
}
// 成功
_SESSION['pma_auth'] =GLOBALS['PMA_Config']->getAuth('cookie');
4. 修改config.inc.php
在phpMyAdmin的官方配置文件中,有一行配置可以用来将“keepalive.php”包含进去从而实现登录保持:
$cfg['LoginCookieValidity'] = 0;
将该行配置改为:
$cfg['LoginCookieValidity'] = 1440; // 24小时
$cfg['PersistentConnections'] = true;
$cfg['LoginCookieStore'] = true;
$cfg['SendErrorReports'] = false;
5. 访问自动登录页面
创建一个名为“auto_login.php”的脚本,然后在其中引用“keepalive.php”,如下所示:
<?php require_once('phpmyadmin/keepalive.php'); ?>
最后,将该文件放在phpMyAdmin主目录下。
现在,当我们从浏览器中访问“auto_login.php”时,如果我们之前已经登录过phpMyAdmin,那么这个脚本将防止登录被超时而失效。同时,如果我们之前没有登录过phpMyAdmin,那么我们将会重新登录,登录的用户名和密码将会保存在浏览器的Cookie中,此后再次访问phpMyAdmin的时候就会自动登录了。
总结
本文为大家详细介绍了如何通过MySQL Auto-Login phpMyAdmin来减少登录的负担,并且处理了一些可能遇到的问题。这样做有利于提高工作效率和便利性。在进行此操作时,请务必保护好您的用户名和密码,谨慎使用自动登录功能。
极客教程