开启查询日志:

  配置文件my.cnf:

    log=/usr/local/mysql/var/log.log

开启慢查询:

  配置文件my.cnf:

    log-slow-queries=/usr/local/mysql/var/slow.log #注意减号或者下划线

    long_query_time=2

更新日志:

   配置文件my.cnf:

    log-update=/usr/local/mysql/var/update.log

错误日志:

  配置文件my.cnf:

    log-error=/usr/local/mysql/var/error.log

开启bin-log日志(不是每次更删改都会产生新的日志文件, 是往日志文件里写入; 要产生新的日志可以用flush logs;):

  配置文件my.cnf:

    log-bin=mysql-bin #日志开启 并且bin-log文件用什么开头

    

  命令:

    flush logs; 刷新日志 会产生一个新bin-log日志文件记录一系列的操作

    show master status; 查看最后一个产生的bin-log日志

    reset master; 清空所有的bin-log日志 默认日志索引又会从mysql-bin.000001开始

  

  分析日志:

    /usr/local/mysql/bin/mysqlbinlog --no-defaults mysql-log.000001 #查看这个日志文件中所有的操作

  数据恢复:

    1.恢复到某一个点[日志](基于日志恢复)

      /usr/local/mysql/bin/mysqlbinlog --no-defaults mysql-log.000002 |mysql -uroot -proot test #比如mysql-log.000003把表删除了, 把test数据库恢复到000002那个点上 可以根据flush logs产生的日志点来进行恢复

    2.恢复到某一个点[日志]中指定时间(基于时间恢复)

      mysqlbinlog --stop-date='2010-09-04 9:59:59' /var/log/mysql-bin.000001 | mysql -uroot -proot test #把test数据库恢复到2010-09-04 9:59:59

      mysqlbinlog --start-date='2010-09-04 10:01:00' /var/log/mysql-bin.000001 | mysql -uroot -proot test #把test数据库恢复到2010-09-04 10:01:00

      可以只执行其中前一条[把后面的数据库操作全部丢弃], 同样可以把两条分别执行, 就会把时间段2010-09-04 10:00:00产生的错误给丢弃了(当然, 时间点要更加准确)

    3.恢复到某一个点[日志]中指定位置(基于位置恢复)

      mysqlbinlog --stop-position='106' /var/log/mysql-bin.000001 | mysql -uroot -proot test #把

      mysqlbinlog --start-position='232' /var/log/mysql-bin.000001 | mysql -uroot -proot test

      基于时间点的恢复需要准确的时间, 而基于位置的恢复用end_log_pos来进行恢复, 以为日志中的每一个操作都会产生一个日志位置变化, 即end_log_pos

      如果一个误操作的日志end_log_pos为134, 其前后的end_log_pos分别为106和232 则可以分别对其进行恢复, 当然也可以只恢复之前的[把之后的数据库操作全部丢弃]

备份:

  锁表操作: flush tables with read lock; #只读

  进行解锁: unlock tables;

  mysqldump -uroot -proot test -l -F > /var/back.log #其中-l会产生读锁 -F会执行flush logs操作 产生一个最新的bin-log日志

  

主从复制:

  主服务器

    1.执行授权

      grant replication slave on *.* to 'john'@'192.168.66.129' identified by 'john';

    2.配置:开启bin-log日志

    3.配置:server_id=1(只要主从server_id不一样就可以)

  从服务器

    1.配置

      server_id=2

      master-host=192.168.66.128

      master-user=john

      master-password=john

      master-port=3306

      master-connect-retry=60 #断点重新连接时间

      log-bin=mysql-bin #生成的二进制文件名

      replicate-do-db=test #要同步的数据库 一开始配置错了 怎么start slave也起不来

      replicate-ignore-db=mysql #屏蔽对mysql的同步

      也可以执行change master to master_host='192.168.66.128',master_user='john',master_password='john', master_log_file='mysql-bin.000001' ,master_log_pos=106;

    2.配置完重启

      默认已经开启了slave, 所以不用再次执行start slave;

      执行show slave status \G; 查看从服务器状态

        

      看到Slave_IO_Running、Slave_SQL_Running都为Yes则成功

    3.重置主从服务器

      主服务器执行reset master; 从服务器执行stop master; reset slave; start slave;

MySQL-五种日志(查询日志、慢查询日志、更新日志、二进制日志、错误日志)、备份及主从复制配置的更多相关文章

  1. mysql五种日期函数

    create table timess( id int primary key auto_increment, YEARs ——” DATEs DATE ——” TIMEs TIME ::——::” ...

  2. Mysql五种时间格式

    YEAR [字节数]:1 [取值范围]:1901~2155 [赋值]: 4位数字 2位字符串:'00'~'69'相当于2000~2069:'70'~'99'相当于1970~1999 2位数字:与2位数 ...

  3. MySQL 错误日志(Error Log)

    同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件.通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等. 这些日志能够帮助我们定位mysqld ...

  4. mysql 开发进阶篇系列 38 mysql日志之错误日志log-error

    一.mysql日志概述 在mysql中,有4种不同的日志,分别是错误日志,二进制日志(binlog日志),查询日志,慢查询日志.这此日志记录着数据库在不同方面的踪迹(区别sql server里只有er ...

  5. mysql错误日志/var/log/mariadb/mariadb.log,二进制日志

    mariadb-日志 IT_luo关注0人评论65人阅读2018-10-15 08:59:03   mariadb日志 mariadb日志: 1.查询日志:query log: 2.慢查询日志:slo ...

  6. 第五篇 SQL Server代理理解代理错误日志

    本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到 ...

  7. 【译】第五篇 SQL Server代理理解代理错误日志

    本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到 ...

  8. MySQL错误日志(Error Log)

    错误日志是一个文本文件,记录了 MySQL Server 每次启动和关闭的详细信息以及运行过程中所有较为严重的警告和错误信息.在遇到问题时,应该首先查看这个文件. 如何开启 使用命令 SHOW VAR ...

  9. sql server 错误日志errorlog

    一 .概述 SQL Server 将某些系统事件和用户定义事件记录到 SQL Server 错误日志和 Microsoft Windows 应用程序日志中. 这两种日志都会自动给所有记录事件加上时间戳 ...

随机推荐

  1. MySQL连接查询(inner join,left join和right join的区别)

    关系数据库由多个相关表组成,这些表使用已知为外键列的常用列链接在一起. 因此,从业务角度来看,每个表中的数据是不完整的. 例如,在示例数据库(yiibaidb)中,使用orderNumber列链接的o ...

  2. SHA加密算法工具类

    1.利用Apache的工具类实现加密: maven: <dependency> <groupId>commons-codec</groupId> <artif ...

  3. FastJson和Gson和Json数据解析分析和用法

    首先分析下目前号称最快的FastJson,这个是所有人都验证过的,解析速度确实比较快,不过也需要根据数据量来看,数据量小的时候,Gson性能要稍微优于FastJson,但在数据量大解析的情况下,Fas ...

  4. @SpringContext通过实现ApplicationContextAware接口动态获取bean

    场景: 在代码中需要动态获取spring管理的bean 目前遇到的主要有两种场景:1.在工具类中需要调用某一个Service完成某一个功能,如DictUtils2.在实现了Runnable接口的任务类 ...

  5. java使用省略号代替多参数(参数类型... 参数名)

    J2SE 1.5提供了“Varargs”机制.借助这一机制,可以定义能和多个实参相匹配的形参.从而,可以用一种更简单的方式,来传递个数可变的实参.本文介绍这一机制的使用方法,以及这一机制与数组.泛型. ...

  6. Longest Common Prefix leetcode java

    题目: Write a function to find the longest common prefix string amongst an array of strings. 题解: 解题思路是 ...

  7. 不要再使用JS框架了

    停止编写Javascript框架吧. Javascript框架就好像死亡和税收一样:终究不可避免它的存在.我确信如果我是那面墙上的一只苍蝇,每次有人开始一个新的网页项目时,第一个问题肯定是我们用的是哪 ...

  8. android实现gif图与文字混排

    我们在进行qq聊天的时候发送表情,但这些表情都是并不是静态的,更多的是动态图,gif图,那么如何在android客户端显示动态gif图呢. 在github上找到了这样一种方法,Github地址http ...

  9. 【leetcode】 9. palindrome number

    @requires_authorization @author johnsondu @create_time 2015.7.13 9:48 @url [palindrome-number](https ...

  10. Realm Swift

    Realm Swift 当前这个翻译,主要是方便我自己查阅api,有非常多地方写的比較晦涩或者没有翻译,敬请谅解 version 0.98.7 官方文档 參考文献 Realm支持类型 String,N ...