2012-09-23 67 views
1

我现在对phpMyAdmin有一个相当奇怪的问题,它似乎在允许我查看我的数据库,但我无法查看包含在它们中的表,除非我执行个人从命令控制台中选择命令。我似乎无法弄清楚发生了什么事。这很烦人,因为我不想在每次我想添加一个新列时都执行alter命令。有人知道发生了什么事吗?phpMyAdmin不显示表

+0

尝试运行'SHOW TABLES'作为查询并发布你得到的。 – lanzz

回答

6

有同样的问题。但只能在新创建的数据库中导入转储之后。通过mysql.exe显示表格确实列出了表格。 原因是导入文件(或转储文件)包含视图定义,像这样:

/*!50001 DROP TABLE IF EXISTS `view_myview`*/; 
/*!50001 DROP VIEW IF EXISTS `view_myview`*/; 
/*!50001 SET @saved_cs_client   = @@character_set_client */; 
/*!50001 SET @saved_cs_results   = @@character_set_results */; 
/*!50001 SET @saved_col_connection  = @@collation_connection */; 
/*!50001 SET character_set_client  = latin1 */; 
/*!50001 SET character_set_results  = latin1 */; 
/*!50001 SET collation_connection  = latin1_swedish_ci */; 
/*!50001 CREATE ALGORITHM=UNDEFINED */ 
/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */ 
/*!50001 VIEW `view_myview` AS select `p`.`id` AS blabla */; 
/*!50001 SET character_set_client  = @saved_cs_client */; 
/*!50001 SET character_set_results  = @saved_cs_results */; 
/*!50001 SET collation_connection  = @saved_col_connection */; 

删除该文件中的视图定义,再次执行进口及表格显示在phpMyAdmin。当然缺乏意见,但当时我不需要它们。 我认为真正的原因与定义者线做:

/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */ 

Same issue described here

+0

谢谢,提示。在我的情况下,定义者(不是root,其他用户)在数据库中不存在。所以在添加到数据库后,一切都OK了:)。 – ryrysz

+0

非常感谢! – alds

+0

由于定义不存在,我也有同样的问题。当我点击页面上的数据库链接时,它说没有表格。但是,当我点击左侧的导航树时,表格显示在那里。由于我的其他浏览器有同样的问题,我的数据库导入出了问题,并且我更新了phpmyadmin和mysql的版本。在我的情况下,刚刚删除转储的意见(他们只是为了查看数据库管理员),再次导入,一切都很好现在 – alds

1

在我的情况下,它是浏览器(Firefox)的某种缓存问题。在私人窗口或其他浏览器中打开phpMyAdmin后,我可以再次看到所有表格。