本文简要说明了MySQL数据库安装好后自带的INFORMATION_SCHEMA,MySQL,TEST三个数据库的用途。

第一个数据库INFORMATION_SCHEMA:提供了访问数据库元数据的方式。
元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。
INFORMATION_SCHEMA是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。
每位MySQL用户均有权访问这些表,但仅限于表中的特定行,在这类行中含有用户具有恰当访问权限的对象。

更多信息请参考这里:

http://dev.mysql.com/doc/refman/5.1/zh/information-schema.html

现在很多人用phpmyadmin管理mysql数据库,有时候不想让普通用户通过phpmyadmin看到INFORMATION_SCHEMA数据库,可以设置一下

在config.inc.php(有的是config.default.php)中设置这样一句
$cfg['Servers'][$i]['hide_db']      = 'information_schema';

SQLyog的设置方法:在设置用户名密码的时候,有个DataBase(s),在其中指定你需要访问的db就可以了。但这样就只能看一个,不知道如果在这里面使用“;”隔开会不会生效,没有试过。

MySQL-front 的设置方法:  这种客户端如果不想看到这个“information_schema”,在设置的Login选项卡中,用户名密码的下面,也有一个DataBase,指定就可以了。

第二个数据库mysql:这个是mysql的核心数据库,类似于sql server中的master表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。不可以删除,如果对mysql不是很了解,也不要轻易修改这个数据库里面的表信息。

第三个数据库是test:这个是安装时候创建的一个测试数据库,和它的名字一样,是一个完全的空数据库,没有任何表,可以删除。

information_schema使用:

select table_name,table_type,engine from information_schema.tables where table_schema='sanguo' order by
table_name desc;

 table_name(表名)
 table_type(表类型)
 引擎
 v56  
 VIEW(视图)
 NULL
 v3

VIEW(视图)

 NULL
 v2

VIEW(视图)

 NULL
 v

VIEW(视图)

 NULL
 tables 
 BASE TABLE(基本表)
 MyISAM 

如何查看某个表更新:

SELECT * FROMinformation_schema.tables where TABLE_SCHEMA='sanguo' AND TABLE_NAME='tb_ad_crontab';

查看update_time字段(很久没有更新不代表现在没有使用哦)。但是我发现update_time为null。

找出在7天前修改的。

USE information_schema;
 
SELECT TABLE_SCHEMA , TABLE_NAME
FROM
TABLES
WHERE UPDATE_TIME IS NOT NULL
AND
UPDATE_TIME > NOW() - INTERVAL 7 DAY
AND
TABLE_SCHEMA = 'store'
AND
TABLE_NAME = 'prices'

stackoverflow:

How can I tell when a MySQL table was last updated?

In later versions of MySQL you can use the information_schema database to tell you when another table was updated:

SELECT UPDATE_TIME
FROM information_schema.tables
WHERE TABLE_SCHEMA ='dbname'AND TABLE_NAME ='tabname'

This does of course mean opening a connection to the database.

An alternative option would be to "touch" a particular file whenever the MySQL table is updated:

On database updates:

  • Open your timestamp file in O_RDRW mode
  • close it again

or alternatively

  • use the PHP equivalent of the utimes() function to change the file timestamp.

On page display:

  • use stat() to read back the file modification time.

找到为什么update_time为null了。因为This only works for MyISAM engine。

我查myisam就有数据:

SELECT table_name,`ENGINE`,update_time FROM `TABLES` where table_name='news';

news MyISAM  2014-02-09 15:14:28

http://stackoverflow.com/questions/2785429/how-can-i-determine-when-an-innodb-table-was-last-changed

http://dba.stackexchange.com/questions/9569/fastest-way-to-check-if-innodb-table-has-changed

    $sql="SELECT UPDATE_TIME
FROM information_schema.tables
WHERE TABLE_SCHEMA ='$dbName' AND TABLE_NAME ='tb_ad_crontab2' "; $sqlModify=$db->createCommand($sql)->queryScalar();
//echo "sqlModify:",$sqlModify,"\n"; $fileMtime=filemtime($this->crontabFile);
 clearstatcache() ;
//echo "fileMtime:",$fileMtime," ",date("Y-m-d H:i:s",$fileMtime),"\n"; $list=array();
//文件过期
if($fileMtime<strtotime($sqlModify))
{
$model=new CDAOCrontab();
$list=$model->getList();
$content="<?php\n return ".var_export($list,TRUE).";\n?>";
file_put_contents($this->crontabFile,$content);
}
else
{
$list=require($this->crontabFile);
}
return $list;

注意:

filemtime和stat一样, 函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。

还有一点要特别注意:

$file=fopen("my.txt","rw");

模式打开

,这样的filemtime的结果一直是当前时间。用只读模式打开则没有问题。

用fopen("my.txt",'r");

MySQL默认INFORMATION_SCHEMA,MySQL,TEST三个数据库用途的更多相关文章

  1. (转载)MySQL默认INFORMATION_SCHEMA,MySQL,TEST三个数据库用途

    (转载)http://www.45it.com/database/201204/29390.htm 本文简要说明了MySQL数据库安装好后自带的INFORMATION_SCHEMA,MySQL,TES ...

  2. MySQL默认INFORMATION_SCHEMA,MySQL,TEST三个数据库用途(转)

    本文简要说明了MySQL数据库安装好后自带的INFORMATION_SCHEMA,MySQL,TEST三个数据库的用途. 第一个数据库INFORMATION_SCHEMA:提供了访问数据库元数据的方式 ...

  3. MySQL、SqlServer、Oracle 三种数据库的优缺点

    MySQL.SqlServer.Oracle 三种数据库的优缺点 一.MySQL 优点: 缺点: 二.SqlServer 优点: 缺点: 三.Oracle 优点: 缺点: 一.MySQL 优点: 体积 ...

  4. mysql系统库INFORMATION_SCHEMA,MySQL,TEST,mysql系统表的作用

    本文简要说明了MySQL数据库安装好后自带的INFORMATION_SCHEMA,MySQL,TEST三个数据库的用途. 第一个数据库INFORMATION_SCHEMA: 提供了访问数据库元数据的方 ...

  5. MySql、SqlServer、Oracle 三种数据库查询分页方式

    SQL Server关于分页 SQL 的资料许多,有的使用存储过程,有的使用游标.本人不喜欢使用游标,我觉得它耗资.效率低:使用存储过程是个不错的选择,因为存储过程是颠末预编译的,执行效率高,也更灵活 ...

  6. MySql、PostgreSql、SqlServer三种数据库的造数存储过程实例

    主要实例:把临时表tmp_table数据插入到目标表target_table 一.MySql造数存储过程实例 mysql造数 -- 第一步,创建临时表 CREATE TEMPORARY TABLE I ...

  7. MySQL、SqlServer、Oracle,这三种数据库的优缺点,你知道吗?

    盘点MySQL.SqlServer.Oracle 三种数据库优缺点 MySQL SqlServer Oracle 一.MySQL 优 点 体积小.速度快.总体拥有成本低,开源:支持多种操作系统:是开源 ...

  8. ubantu 下 修改mysql 默认编码

    启动mysql后,以root登录mysql root@Eadgar-virtual-machine:~# mysql -uroot -proot mysql> show variables li ...

  9. 查看MySQL默认字符集

    MySQL默认字符集相信大家都有所了解,下面就为您介绍一下查看MySQL默认字符集的命令,希望对您学习MySQL默认字符集能有些帮助. MySQL的字符集支持(Character Set Suppor ...

随机推荐

  1. linux可重入、异步信号安全和线程安全

    一 可重入函数 当一个被捕获的信号被一个进程处理时,进程执行的普通的指令序列会被一个信号处理器暂时地中断.它首先执行该信号处理程序中的指令.如果从信号处理程序返回(例如没有调用exit或longjmp ...

  2. ARCGIS二维三维导航

    在使用代码前需要先安装arcgis10.0    或者10.1都可以    不过本人建议初学者安装10.0比较容易安装.. 安装方式和二维三维地图的加载网上都有,就不在此一一赘述了. 先从基本的功能开 ...

  3. Linux squid 安装配置

    linux 代理软件 squid 查看是否安装squid   以上信息表明,本机是已经安装了此软件了 如果没有显示说明没有安装,则可以使用yum工具来安装   安装完软件后我们接着开始配置squid代 ...

  4. 读取xml时,遇到xmlns的问题

    1.读取xml的时候,由于xml里有xmlns的属性,导致了读xml无法正常读取.通过网上搜索,发现需要先注册命名空间.  xmlns是XML Namespaces的缩写,中文名称是XML(标准通用标 ...

  5. java对象与xml相互转换 ---- xstream

    XStream是一个Java对象和XML相互转换的工具,很好很强大.提供了所有的基础类型.数组.集合等类型直接转换的支持. XStream中的核心类就是XStream类,一般来说,熟悉这个类基本就够用 ...

  6. [转帖]MATLAB曲线绘制及颜色类型

    信号源产生的方法 来源:http://www.2cto.com/kf/201401/270494.html  matlab的checkerboard说明,GOOD! 来源:http://www.chi ...

  7. PHP 开发API接口 注册,登录,查询用户资料

    服务端 <?php require 'conn.php'; header('Content-Type:text/html;charset=utf-8'); $action = $_GET['ac ...

  8. 段落排版--对齐(text-aliagn)

    想为块状元素中的文本.图片设置居中样式吗?可以使用text-align样式代码,如下代码可实现文本居中显示.(那么什么是块状元素呢?后面会讲到呢~) h1{ text-align:center; } ...

  9. HTML页面中启用360浏览器极速模式

    今天做页面突然遇到浏览器一直在兼容模式下运行,体验不好,通过查询文档,在<head>中加入<meta name="renderer" content=" ...

  10. 292. Nim Game(C++)

    292. Nim Game(C++) You are playing the following Nim Game with your friend: There is a heap of stone ...