不确定这个答案是否相关,因为我在单个站点机器上使用 phpMyAdmin 作为 WAMP 的一部分。尽管如此,它可能会帮助其他人遇到 phpMyAdmin 不显示现有数据库的问题。
在新机器上安装 WAMP(使用 phpMyAdmin 4.0.4)并使用我的 php 脚本创建一些数据库后,phpMyAdmin 只会显示 information_schema 和测试数据库。
当我从命令提示符运行 mysql 时,数据库就在那里,所以 wtf??
经过一些试验,我发现添加以下行可以解决问题:
$cfg['Servers'][$i]['auth_type'] = 'config';
注意 config.inc.php 已经有了
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Servers'][$i]['AllowNoPasswordRoot'] = false;
$cfg['Servers'][$i]['password'] = 'mypwd';
注意: auth_type 参数在http://wiki.phpmyadmin.net/pma/auth_types中进行了讨论,但我没有看到任何关于未能显示用户创建的数据库的评论。
更多细节:如果没有 auth_type 行,SHOW GRANTS(来自 phpMyAdmin)会产生:
授权使用。TO ''@'localhost' 由密码 '*CF74EB88D030BC86A14151B7CE22C8808A19AA4B' 识别
使用 auth_type 行,SHOW GRANTS 产生:
授予所有特权。TO 'root'@'localhost' 由密码 '*CF74EB88D030BC86A14151B7CE22C8808A19AA4B' 和授权选项识别
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION