如何以 phpmyadmin 用户查看 phpMyAdmin 中的所有数据库?
Posted
技术标签:
【中文标题】如何以 phpmyadmin 用户查看 phpMyAdmin 中的所有数据库?【英文标题】:How to see all databases in phpMyAdmin as phpmyadmin user? 【发布时间】:2013-03-12 19:55:54 【问题描述】:我一直在使用命令行成功地使用 mysql,并创建了各种数据库(主要用于 CMS)。
我决定尝试使用我在一本关于 Joomla! 的书中提到的 phpMyAdmin
。
但是当我点击 Databases 时,我只看到 information_schema、phpMyAdmin 和 test。
我希望能够管理我的所有数据库(可能提供适当的凭据)。可能相关的事实是,如果我以phpmyadmin
用户身份登录 mysql 并显示数据库;查询,我只看到这三个数据库。
我是否需要某种涉及show_db_priv
的授权(授予phpmyadmin
用户)?如果是这样,那么这样做的确切语法是什么?当我为这个用户做一个显示授权时,我可以看到show_db_priv
不是其中之一。
【问题讨论】:
只需使用您的 mysql 根凭据(虽然安全)进行 PHPMyAdmin 配置,它就会显示您的所有数据库 谢谢。这似乎行得通。但现在我想知道单独的 phpmyadmin 用户的意义是什么。 【参考方案1】:在 phpMyAdmin 中以 MySQL root 用户身份登录。如果您在提供正确密码后仍无法以 root 身份登录,请确保您的 phpMyAdmin 的 config.inc.php 中有此行并设置为 true。
$cfg['Servers'][$i]['AllowRoot'] = true;
如果您没有为 MySQL root 帐户分配密码,则默认密码为空。在这种情况下,请检查 phpMyAdmin 的 config.inc.php 中的 AllowNoPassword 是否设置为 true
$cfg['Servers'][$i]['AllowNoPassword'] = true;
【讨论】:
【参考方案2】:不确定这个答案是否相关,因为我在单个站点计算机上使用 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)会产生:
在 . 上授予使用权限,通过密码 '*CF74EB88D030BC86A14151B7CE22C8808A19AA4B' 识别到 ''@'localhost'
使用 auth_type 行,SHOW GRANTS 产生:
将所有权限授予 . 到 'root'@'localhost' 由密码 '*CF74EB88D030BC86A14151B7CE22C8808A19AA4B' 识别并带有授予选项
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
【讨论】:
以上是关于如何以 phpmyadmin 用户查看 phpMyAdmin 中的所有数据库?的主要内容,如果未能解决你的问题,请参考以下文章
在新设计的 phpMyAdmin 中,如何将导出设置为默认为“以文本形式查看输出”?