日志文件结构及误操作数据找回,开发进阶篇系

在给一个表添加字段的时候,忽然发现会报一个date类型的字段的默认值错误,郁闷~

一. 概述

一.概述

    mysqlshow客户端查找工具,能很快地查找存在哪些数据库,数据库中的表,表中的列或索引,和mysql客户端工具很类似,不过有些特性是mysql客户端工具所不具备的。
  mysqlshow的使用方法如下:
图片 1

    如果不加任何选项,默认情况下,会显示所有数据库,下面将显示当前mysql中所有数据库。
图片 2

经过排查,原来是MySQL的配置问题,在wamp下,MySQL 5.7里是没有设置 SQL_MODE 的。

  在sql server 里有数据文件.mdf和日志文件.ldf,日志文件是sqlserver数据库的另一个重要组成部分,日志文件记录了所有事务以及每个事务对数据库所做的修改。为了提高数据库的性能, sqlserver 数据是缓存在内存里,并没有实时写入到磁盘,直到数据库出现检查点(checkpoint)或者内存不足必须(Lazy Write)将数据的修改写入到磁盘。 sql server在开启了事务并对内存中的数据进行修改时,会生成日志记录。 sqlserver 对数据页的插入修改删除都是在内存中完成后提交事务,但并不会同步到硬盘的数据页上。 为了保证数据库事务的一致性 如(服务器崩溃,断电)等 内存中的修改没有来得及写入硬盘,下次重启时候要能够恢复到一个事务一致的时间点,就必须依赖于事务日志。

二.下面是mysqlshow的一些常用选项

    2.1 --count 显示数据库和表的统计信息

      如果不指定数据库,则显示每个数据库的名称,表数据,库总记录行数。下面是查看所有数据库。
图片 3

      如果指定数据库,则显示指定数据库的每个表名,表字段数量,表记录总行数。 下面是查看mysql库。
图片 4

      如果指定数据库和表,则显示字段信息, 下面是查看mysql库的user表。
图片 5

    2.2 -k 显示指定表中的所有索引 
     该选项显示两部份,一是指定表的表结构,二是指定表的当前索引信息.下面是显示mysql库下的user表。
图片 6

--下面的sql语句显示与上面功能一样,查询mysql库下的user表,一是字段信息,二是索引信息
    SHOW FULL COLUMNS FROM mysql.`user`
    SHOW INDEX  FROM mysql.`user`

   2.3 -i 显示表的一些状态信息

      该选项还是很有用的,下面是显示mysql库下的user表状态信息。
图片 7

图片 8

   更多mysqlshow信息

1.my.ini文件中找到 [mysqld]

     1.1 存储结构

2.如果没有SQL_MODE,就添加,有就修改一下

  与数据文件不同 日志文件不是按页/区来进行组织的。每个物理日志文件是分成多个虚拟日志单元,虚拟日志单元没有固定大小,且数量不固定, 管理员也不能配置大小和数量。 例如:日志文件每自动增长一次(默认是按10%的空间扩展),会至少增加一个虚拟单元。

sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

  事务日志是一种回绕的文件。例如一个数据库里的日志文件包括5个虚拟日志单元,在创建数据库时,逻辑日志文件从物理文件的始端开始,新的日志记录被添加到逻辑日志未端,然后向物理日志未端扩张。

3.重启MySQL;

  当逻辑日志的末端到达物理日志的末端时,新的日志记录将回绕到物理日志文件的始端继续向后写(这是因为日志备份会截断使日志空间重用)。

本文由ca88手机版登录发布于亚洲城ca88手机版官网,转载请注明出处:日志文件结构及误操作数据找回,开发进阶篇系

TAG标签: ca88手机版登录
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。