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