MySQL默认INFORMATION_SCHEMA,MySQL,TEST三个数据库用途
本文简要说明了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;
|
|
|
|
|
|
|
VIEW(视图) |
|
|
VIEW(视图) |
|
|
VIEW(视图) |
|
|
|
|
如何查看某个表更新:
SELECT * FROMinformation_schema.tables where TABLE_SCHEMA='sanguo' AND TABLE_NAME='tb_ad_crontab';
查看update_time字段(很久没有更新不代表现在没有使用哦)。但是我发现update_time为null。
找出在7天前修改的。
|
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三个数据库用途的更多相关文章
- (转载)MySQL默认INFORMATION_SCHEMA,MySQL,TEST三个数据库用途
(转载)http://www.45it.com/database/201204/29390.htm 本文简要说明了MySQL数据库安装好后自带的INFORMATION_SCHEMA,MySQL,TES ...
- MySQL默认INFORMATION_SCHEMA,MySQL,TEST三个数据库用途(转)
本文简要说明了MySQL数据库安装好后自带的INFORMATION_SCHEMA,MySQL,TEST三个数据库的用途. 第一个数据库INFORMATION_SCHEMA:提供了访问数据库元数据的方式 ...
- MySQL、SqlServer、Oracle 三种数据库的优缺点
MySQL.SqlServer.Oracle 三种数据库的优缺点 一.MySQL 优点: 缺点: 二.SqlServer 优点: 缺点: 三.Oracle 优点: 缺点: 一.MySQL 优点: 体积 ...
- mysql系统库INFORMATION_SCHEMA,MySQL,TEST,mysql系统表的作用
本文简要说明了MySQL数据库安装好后自带的INFORMATION_SCHEMA,MySQL,TEST三个数据库的用途. 第一个数据库INFORMATION_SCHEMA: 提供了访问数据库元数据的方 ...
- MySql、SqlServer、Oracle 三种数据库查询分页方式
SQL Server关于分页 SQL 的资料许多,有的使用存储过程,有的使用游标.本人不喜欢使用游标,我觉得它耗资.效率低:使用存储过程是个不错的选择,因为存储过程是颠末预编译的,执行效率高,也更灵活 ...
- MySql、PostgreSql、SqlServer三种数据库的造数存储过程实例
主要实例:把临时表tmp_table数据插入到目标表target_table 一.MySql造数存储过程实例 mysql造数 -- 第一步,创建临时表 CREATE TEMPORARY TABLE I ...
- MySQL、SqlServer、Oracle,这三种数据库的优缺点,你知道吗?
盘点MySQL.SqlServer.Oracle 三种数据库优缺点 MySQL SqlServer Oracle 一.MySQL 优 点 体积小.速度快.总体拥有成本低,开源:支持多种操作系统:是开源 ...
- ubantu 下 修改mysql 默认编码
启动mysql后,以root登录mysql root@Eadgar-virtual-machine:~# mysql -uroot -proot mysql> show variables li ...
- 查看MySQL默认字符集
MySQL默认字符集相信大家都有所了解,下面就为您介绍一下查看MySQL默认字符集的命令,希望对您学习MySQL默认字符集能有些帮助. MySQL的字符集支持(Character Set Suppor ...
随机推荐
- innodb结构解析工具---innodb_ruby
1.下载ruby并安装ruby: ftp://ftp.ruby-lang.org/pub/ruby/ ftp://ftp.ruby-lang.org/pub/ruby/ruby-2.3-stable. ...
- cocoaPods下载使用记录
cocoaPods下载使用记录 参考地址: 如何在Mac OS 上安装运行Ruby运行环境 http://www.cnblogs.com/daguo/p/4097263.html cocoaPods安 ...
- Android 布局
转自:http://www.cnblogs.com/chiao/archive/2011/08/24/2152435.html Android布局是应用界面开发的重要一环,在Android中,共有五种 ...
- Jquery方法load之后导致js失效解决方法
Jquery方法load之后导致js失效解决方法 >>>>>>>>>>>>>>>>>>> ...
- date和long的相互转换
import java.text.SimpleDateFormat; import java.util.Date; public class T { public static void main(S ...
- iBatis 的删除一条记录
Student.xml 设置删除参数的类型,可以是一个对象的 <delete id="delStudent" parameterClass="int" & ...
- Android 巧妙实现图片和文字上下布局或者左右布局
最近去了一家新公司,然后开始做新的项目,看其代码发现了一个很巧妙的方法来实现图片在上面文字在下面的布局方式.只需要一个控件——RadioButton. 布局文件很简单,用来展示RadioBUtton的 ...
- 微软企业库Microsoft Enterprise Library的相关文章链接
微软企业库4.1学习笔记 http://blog.csdn.net/anyqu/article/category/1228691/3 黄聪:Enterprise Library 5.0 系列教程 ww ...
- cmd运行java程序,无黑框闪烁
程序目录中创建 “启动.bat” @echo off set mypath="%~dp0myjar.jar" echo %mypath% start javaw -jar %myp ...
- tomcat 正常启动,无法访问。且项目启动无问题。。。的解决办法。。
Eclipes解决方法: 1.右击项目,选择propreties选项 2.在弹出的首选项窗口的左侧选择“Web Project Settings” 3.修改context root:输入框,修改成自己 ...