我有一个用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最左边的列中。
答案 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**';