2

我一直在使用命令行成功地使用 MySQL,并创建了各种数据库(主要用于 CMS)。

我决定尝试使用phpMyAdmin我在一本关于 Joomla! 的书中提到的。

但是当我点击 Databases 时,我只看到 information_schema、phpMyAdmin 和 test。

我希望能够管理我所有的数据库(大概提供适当的凭据)。可能相关的事实是,如果我以用户身份登录 mysqlphpmyadmin并显示数据库;查询,我只看到这三个数据库。

我是否需要某种涉及show_db_priv(授予phpmyadmin用户)的授权?如果是这样,那么这样做的确切语法是什么?当我为这个用户做一个表演授权时,我可以看到那show_db_priv不是其中之一。

4

2 回答 2

6

在 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;
于 2013-03-23T09:42:13.110 回答
1

不确定这个答案是否相关,因为我在单个站点机器上使用 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

于 2013-12-28T16:28:31.150 回答