1

I'm having a rather strange issue with phpMyAdmin at the moment, it seems to be allowing me to view my databases, but I can't view the tables that are contained within them unless I execute an individual select command from the command console. I can't seem to figure out what's going on. It's rather annoying as I don't want to have to execute an alter command every time I want to add a new column and such like. Does anybody know what's going on?

1
  • Try to run a SHOW TABLES as a query and post what you get. Commented Sep 23, 2012 at 20:19

4 Answers 4

7

Had the same issue. But only after importing a dump in a newly created database. show tables via mysql.exe did list the tables. Cause was that the import file (or dump file) contained view definitions, like so:

/*!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 */;

Removed the view definitions from the file, executed the import again and tables were displayed in phpMyAdmin. Views were lacking of course, but at the time I didn't need them. I think the true cause has to do with the DEFINER line:

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

Same issue described here.

Sign up to request clarification or add additional context in comments.

2 Comments

Thanks, for hint. In my case, definer (not root, other user) did not exists in database. So after added it to db, all is ok :).
I had the same problem too due to definer not existing. When I click on the database link on the page itself it says there are no tables. But when I click navigation tree on the left the tables are displayed there. Figured something wrong with my db import since my other browser have the same issue, and I have updated versions of phpmyadmin and mysql. In my case just deleted the views from the dump (they're just for viewing of db admins) and imported again and everything's fine now
2

In my case it was some kind of caching problem of the browser (Firefox). After opening phpMyAdmin in a private window or in another browser I could see all tables again.

Comments

0

Nowadays in 2022, In my case resetting my settings from Home >> More Settings under General Settings >> Manage your settings tab > Reset was the solution.

For some reason I don't know tables disappeared after amending the left max tables number in "Maximum items in branch"

Comments

0

One reason phpMyAdmin may not be showing tables/views in the navigation tree is because they are hidden in PMA configuration storage.

If you see an eye icon to the right of the database name, then some items have been hidden. Click on it and it will open a window displaying a list of your hidden tables/views with an option to unhide them, e.g.:

hidden objects window

Alternatively, you can check for hidden objects in the PMA configuration database and the navigationhiding table. If there are items listed in that table, they are hidden. Delete them from that table and they will be restored.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.