配置 phpMyAdmin

phpMyAdmin 在安装之后就已经可以正常使用了(安装参考)。但是如果希望让它的行为符合自己的使用习惯,就需要再多些配置了。比如界面语言、导出数据库时默认的文件格式等。

内建的配置脚本

phpMyAdmin 自己就提供了一个配置它的网页界面,可以通过浏览器访问并进行配置,然后下载配置文件,覆盖原来的配置文件即可。可以登录到 phpMyAdmin 中找到该配置界面的访问入口:

登录到 phpMyAdmin,在主界面中有个外观设置(Appearance Settings),点击打开该标签页之后,页面下面的更多设置More Settings),然后在靠下面的位置有个配置脚本Setup scripts)的链接,点击就能打开配置页面。

当然也可以直接输入地址来打开:

相对于 phpMyAdmin 的访问地址的路径为 setup/index.php

因为一般我们都不会在数据库中额外配置一个专门的数据表来存储配置,所以这里修改的内容在保存设置后只对当前的访问有效,下次登录后还需要重新配置。在配置界面会看到如下的提示:

Your preferences will be saved for current session only. Storing them permanently requires phpMyAdmin configuration storage.

这样我们就需要在配置好了之后将配置文件下载下来,然后上传到服务器,覆盖原来的配置文件(一般是 /etc/phpMyAdmin/config.inc.php),就可以一劳永逸了。

覆盖后直接生效,不需要重起之类的操作。

如果不放心直接覆盖 CentOS 系统默认配置的 config.inc.php,则直接将新生成的配置文件的内容复制粘贴到 /etc/phpMyAdmin/config.inc.php 文件的结尾即可。

直接修改配置文件

因为需要修改的配置不多,所以我更喜欢直接修改 phpMyAdmin 的配置文件:

 vim /etc/phpMyAdmin/config.inc.php

然后根据需要修改,或者在该文件的末尾添加其中没有的配置。

经常用到的有如下几个配置参数:

0、绝对地址。

LAMP 服务器安装配置中介绍 phpMyAdmin 的安装的时候曾提到,为了减少被顺带扫描的干扰,建议设置一个非标准的 http(s) 端口(非 80/443 端口)来访问它。如果没有配置 SSL,也就是只用 http 而不用 https 来访问 phpMyAdmin 的话是没有问题的。比如,采用端口 12345:

http://10.20.30.40:12345/pma/

但是当安装配置的 phpMyAdmin 使用了非标准端口来进行加密连接的访问时,可能是由于 SSL 本身的特性,亦或是水景一页配置的 SSL 没照顾到这个,会出现在 phpMyAdmin 登录后跳转时变成不加端口的链接地址的情况。也就是说,访问地址,

https://10.20.30.40:12345/pma/

会提示登录。正确输入用户名和密码,登录的时候明明是正确的链接地址,登录后(登录成功的情况下)变成了不带端口的链接地址,如,

https://10.20.30.40/pma/

此时实际上已经登录了,但是访问地址不对,因此浏览器显示无法打开网页。如果紧接着再访问 https://10.20.30.40:12345/pma/ 就直接进去了,因为有 cookie。

为了解决这个在 HTTPS 加密访问配置了 SSL 的带端口地址的跳转问题,需要在配置中给 phpMyAdmin 声明带端口的绝对地址,

$cfg['PmaAbsoluteUri'] = 'https://10.20.30.40:12345/pma/';

不需要重启WEB服务器就能享受自动跳转到正确的链接地址了。

1、界面语言。

如果觉得简体中文看着更舒服,可以使用下面的设置。

// 默认界面语言。
$cfg['DefaultLang'] = 'zh_CN';
// 语言。如果设置了下面个,就不会在登录的时候显示选择语言的那个下拉菜单,而是只提供这一种界面语言。
// 一般情况下不需要,所以给它注释掉了。如果需要,将前面的 // 去掉即可。
//$cfg['Lang'] = 'zh_CN';

2、控制导出数据库可选择的压缩格式。

我一般选择 gzip(.gz)格式,所以下面两种就用不上了。

// .zip 格式
$cfg['ZipDump'] = false;
// .bz 格式
$cfg['BZipDump'] = false;

3、导出数据库的默认压缩方式。

如果不配置,则默认是 .sql 文件,而不是 .sql.gz 文件。

$cfg['Export']['compression'] = 'gzip';

如果想使用 zip 格式,就将后面的 gzip 改成 zip 即可。

这样设置之后,在导出数据库的时候,不需要做选择,直接就是自己喜欢的压缩包了。压缩还是很有必要的,一个 10+M 的数据(.sql)文件,压缩后只有 2+M 的大小,下载的时候轻松多了。

4、是否启用压缩。

这个设置跟前面 2 个很容易混淆。这里定义的是数据库的输出方式。分解来说就是,如果这里设置为 1 了,那么即使导出数据库的时候选择不压缩(即得到 .sql 文件),该文件内容实际上是压缩过的。既然前面设置了导出文件默认为 gzip 压缩,我就给它设置为 0 了。

$cfg['OBGzip'] = 0;

这个问题还可以进一步说明。假设这里设置为 1 了,我们导出数据库文件保存到本地(.sql)文件。用文本编辑器打开这个文件时会看到乱码。接着将这个文件的后缀改为 .gz 或 .zip,然后解压缩。再用文本编辑器打开这个解压缩后的文件,就不是乱码了,而是显示数据库的文本内容(结构和存储的信息都有)。

5、是否显示图标。

在数据库管理的时候,我还是喜欢直接看文字,不喜欢在文字旁边弄个多余的图片,所以都给设置成 false 了。

$cfg['TableNavigationLinksMode'] = 'text';
$cfg['TabsMode'] = 'text';
$cfg['ActionLinksMode'] = 'text';

6、是否显示 phpinfo 页面的链接。

$cfg['ShowPhpInfo'] = false;

7、导入数据库的默认编码格式。

现在一般都是 UTF-8 了吧。这个设置可有可无,反正也不会经常要导入数据库。

$cfg['Import']['charset'] = 'utf-8';

8、是否禁用左侧树状数据库列表的展开功能。

个人觉得展开了看着很累,还不如简单的列个所有数据库的链接就够了。

$cfg['UserprefsDisallow'] = array('NavigationTreeDisableDatabaseExpansion');

配置完成后保存并退出编辑器(这里用的是 vim):

Ctrl+c
:wq

2015.10.25 更新

增加 PmaAbsoluteUri 的说明。

2015.01.07 更新

根据 PMA 4.3.5 修改了一些配置参数。©

本文发表于水景一页。永久链接:<https://cnzhx.net/blog/config-phpmyadmin/>。转载请保留此信息及相应链接。

2 条关于 “配置 phpMyAdmin” 的评论

  1. 引用通告: Linode VPS 上 CentOS 6 安装 LAMP + phpMyAdmin 记录 | 水景一页

  2. 引用通告: CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin | 水景一页

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)