运行WAMP localhost服务器使用php 5.6.18和MySQL 5.7.11
在我正在进行的项目中,我需要从information_schema
.COLUMNS
表中获取一些列数据,但information_schema
DB完全为空 - 此DB中的每个表都有0行
有关其他信息 - 我在这个MySQL上有10个不同的数据库,有些是导入的,有些是在phpmyadmin从头开始制作的。
所以我完全失去了 - 试图谷歌但没有运气。
也许我想念一些必要的和微不足道的东西,如MySQL的一些配置?
执行此查询:
mysql> SHOW GRANTS;
这将向您显示您未以您打算使用的用户身份登录,或者该用户缺少对相关表的权限。
在这种情况下,用户可能根本没有权限。 MySQL有一个名为USAGE
的特殊权限,如果您不熟悉它的含义,它可能看起来有点具有欺骗性。这意味着你可以“使用”服务器 - 也就是说,你可以登录。但这就是它的意思。如果您只拥有USAGE ON *.*
权限,则表示您有权登录服务器,但没有其他任何权限。
information_schema
与权限系统集成在一起。您无法查看有关您没有权限的数据库对象的信息。空的information_schema.columns
表为您用于连接服务器的用户建议权限问题。
有时,当您将数据库的文件夹复制并粘贴到mysql文件夹中时,这可能会出现问题。不要那样复制。使用“phpmyadmin”中的“export”命令导出数据库或使用mysql命令行客户端中的“mysqldump”命令来复制数据或将数据从一个导出到另一个的最佳方法。它将生成“yourdata.sql”文件。最后,您可以使用“导出命令”phpmyadmin“导入该数据。在您的方法中成功使用mysql中的”MyISAM“数据库驱动程序。现代mysql服务器默认数据库驱动程序是”InnoDB“并且在复制数据库数据时不成功将文件夹放到另一台计算机上。如果您从旧计算机上获得了以前数据库副本的副本,请尝试使用“phpmyadmin”Web界面中的导出方法导出“yourdata.sql”文件。
当我将mysql文件夹转移/移动到其他位置时,我遇到了同样的问题。并配置DB以相应地指向Mysql文件夹。
但是,尽管其他数据库查询运行正常,但Information_schema没有得到更新。我找不到合适的解决方案但是方法是从mysql编辑器(如workbench)检查模式。
您将在“信息过期”的底部获得一个选项,然后单击“分析表”。您会发现Information_schema开始计算正确的大小和其他细节。