PhpMyAdmin隐藏数据库设置同前缀失效的问题

  1. 云栖社区>
  2. 博客>
  3. 正文

PhpMyAdmin隐藏数据库设置同前缀失效的问题

zsjangel 2015-07-30 14:31:00 浏览766
展开阅读全文

用PhpMyAdmin默认会把所有数据库都显示出来,一些如 MySQL,information_schema之类的也会显示,这样既不安全看着也不爽,隐藏掉最好。

修改 config.inc.php 或者 config.sample.inc.php
默认应该是没有这两个配置的,可以手动添加上:

only_db 是只显示的数据库名, 用数组格式
hide_db 是执行要隐藏的数据库名,用正则匹配模式
根据你的实际情况,两个中选一个设置就行了

$cfg['Servers'][$i]['only_db'] = array('youqumob_union');
$cfg['Servers'][$i]['hide_db'] = '^(performance_schema|information_schema|phpmyadmin|mysql)';

phpmyadmin隐藏数据库


上面这些其实网上都有许多人提到过了,我这里主要是说明下面的问题:
如果你的数据库是用 _ 下划线来区分前缀分组的话,这是可能存在一个 BUG ,隐藏会失效
如下图:


phpmyadmin隐藏数据库

我明明在配置中已经设置了只有 union 能显示,其他的都给隐藏,但唯独同前缀的 count 仍然显示,拒不服从隐藏命令。

纠结了好半天,终于找到原因,是因为默认的数据库名分隔符的原因,换成其他符号就行了,但是 _ 下划线就不能进行分组管理了,这实际上个是个很好的功能,数据库多了看的头昏眼花,有个分组好得多,但因为这个 BUG 就用不了了,没心思改源码,将就了吧。

也可在配置文件中添加代码:

// 设置数据库名分隔符,默认是 _ 下划线
$cfg['NavigationTreeDbSeparator'] = '|';

尼玛,太坑爹了。。。发现一个很崩溃的问题,上面设置的时候,估计是面板上提交配置会被写入数据库,导致配置文件修改始终无效了,只有通过服务器命令行下进行修改恢复。

进入 phpmyadmin 数据库,如果你有装他这个数据库的话跟你的配置来。


这里写图片描述

更新下这个配置字段,去掉 hide_db 和 only_db 的配置

update pma__userconfig set config_data = '{"lang":"zh_CN","collation_connection":"utf8mb4_unicode_ci"}' where username = 'root';

这样就可以恢复了。。。无语

网友评论

登录后评论
0/500
评论
zsjangel
+ 关注