如题,请教区别?我看到所有信息全部都写入information_schema数据库,而在mysql数据库中貌似只有user表内才有信息,请教区别。谢谢。

解决方案 »

  1.   

    NFORMATION_SCHEMA是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。看手册
    http://dev.mysql.com/doc/refman/5.1/zh/information-schema.html#information-schema-tables
      

  2.   

    MYSQL是实际存在于物理磁盘的。 而information_schema数据库仅是在内存中,由MYSQL运行后生成的。
      

  3.   

    按照你的意思,就是说只有当mysql运行的时候,information_schema内才会有信息?我现在查找db信息,在mysql数据库中的db表中没有信息,而却在information_schema数据库中的schemata表中却找到了db信息。我是不是可以这么认为,当mysql数据库运行以后,则所有信息全部读入information_schema数据库中,所以我看到的都是即时信息,当数据库停止以后,则信息全部清除。那如果是这样的话,mysql数据库有存在的意义么?
    谢谢。
      

  4.   


    USER表,还有其它所有的表,至于其它表中没有东西,那是你没有进行设置。比如DB表中,你根本没有做任何关于DB授权的设置,自然这个表中没有任何内容。 建议看一下MYSQL的手册中对这些表的说明。
      

  5.   

    mysql数据库是实实在在的系统数据库,有实际的表文件数据库目录。
    而information_schema是mysql为了遵循SQL标准,创建了这么一个“虚拟”的库。它没有对应的物理文件。应该是加载到内存当中。或者直接使用视图生成。
      

  6.   


    多谢。那如果说我要给一个用户CREATE DATABASE的权限,但是不想给这个用户MYSQL数据库的权限,请问这样是不是矛盾的?
      

  7.   

    我先创建一个用户并赋予create权限:CREATE USER test IDENTIFIED BY 'qwe123'GRANT CREATE ON *.* TO test@'%';然后我想取消test在mysql数据库上的create权限,但是遇到error:mysql> revoke create on mysql.* from test1@"%";
    ERROR 1141 (42000): There is no such grant defined for user 'test1' on host '%'请问这是怎么回事?谢谢。
      

  8.   

    mysql库更多存的是数据库的授权信息information_schema是一个视图库  更多存的是表的统计信息 是元数据