2

目前我的 phpMyAdmin 有一个相当奇怪的问题,它似乎允许我查看我的数据库,但我无法查看其中包含的表,除非我从命令控制台执行单独的选择命令。我似乎无法弄清楚发生了什么。这很烦人,因为我不想每次想要添加新列等时都必须执行更改命令。有人知道发生了什么吗?

4

4 回答 4

7

有同样的问题。但只有在新创建的数据库中导入转储之后。show tables via 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 中。当然缺乏意见,但当时我不需要它们。我认为真正的原因与 DEFINER 行有关:

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

此处描述的相同问题

于 2014-01-31T15:47:45.797 回答
1

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

于 2015-03-24T14:23:52.983 回答
0

你试过用谷歌搜索答案吗?一些可以提供解决方案的方法:

https://dba.stackexchange.com/questions/4897/mysql-tables-do-not-show-up-in-the-phpmyadmin-and-mysqlworkbench

http://otherleg.com/anotherblog/archives/1488

ETC ...

于 2012-09-23T20:21:24.270 回答
-1

尝试按 CTRL + F5(Windows 用户)或 Command + F5(Mac 用户)强制浏览器清除缓存并重新加载。

于 2019-04-20T10:11:21.790 回答