phpMyAdmin不显示绝对有表的数据库的表列表

时间:2012-03-26 18:41:50

标签: mysql phpmyadmin wamp

我有一个用PHP编写的网站,使用MySQL数据库。购买新笔记本电脑(Windows 7)后,我下载了WAMP 2.2,包括MySQL 5.5.20,PHP 5.3.10和phpMyAdmin 3.4.10.1。我从实时网站导出整个数据库,并使用MySQL控制台将其导入我的wamp环境。

phpMyAdmin列出了数据库,但表示其中没有表格。然而,这些网站在WAMP环境中工作。此外,如果我在phpMyAdmin中执行SQL“SHOW TABLES”,它将显示表格。

我完全不知道为什么这些表没有列在phpMyAdmin最左边的列中。

3 个答案:

答案 0 :(得分:11)

我遇到了类似的问题。通过一些挖掘,我发现phpMyAdmin的表列表在此查询中失败:

SHOW TABLE STATUS FROM `database`;

这是错误信息:

ERROR 1143 (42000): SELECT command denied to user ''@'localhost'
 for column `column` in table `table`

这让我想到了这个问题:mysql forgets who is logged in: command denied to user ''@'%'

这使我得出结论,我加载到数据库中的一个视图具有冲突的特权。实际上,当我查看我正在加载数据库的SQL转储时,我找到了罪魁祸首:

CREATE ALGORITHM=UNDEFINED DEFINER=`someotheruser`@`localhost` ..

我的本​​地MySQL中不存在someotheruser。我将其更改为以下内容:

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` ..

重新加载视图,现在一切正常。

答案 1 :(得分:0)

如果数据库中有任何视图,问题在于Definer。

只需删除视图即可,或者您可以在记事本中打开导出的数据库文件并将Definer更改为root。

答案 2 :(得分:-4)

只是为了帮助别人,在php.my.min中的phpMyAdmin中,改变一下:

$cfg['Servers'][$i]['extension'] = '**mysqli**';

到此:

$cfg['Servers'][$i]['extension'] = '**mysql**';