MySQL-五种日志(查询日志、慢查询日志、更新日志、二进制日志、错误日志)、备份及主从复制配置
开启查询日志:
配置文件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-五种日志(查询日志、慢查询日志、更新日志、二进制日志、错误日志)、备份及主从复制配置的更多相关文章
- mysql五种日期函数
create table timess( id int primary key auto_increment, YEARs ——” DATEs DATE ——” TIMEs TIME ::——::” ...
- Mysql五种时间格式
YEAR [字节数]:1 [取值范围]:1901~2155 [赋值]: 4位数字 2位字符串:'00'~'69'相当于2000~2069:'70'~'99'相当于1970~1999 2位数字:与2位数 ...
- MySQL 错误日志(Error Log)
同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件.通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等. 这些日志能够帮助我们定位mysqld ...
- mysql 开发进阶篇系列 38 mysql日志之错误日志log-error
一.mysql日志概述 在mysql中,有4种不同的日志,分别是错误日志,二进制日志(binlog日志),查询日志,慢查询日志.这此日志记录着数据库在不同方面的踪迹(区别sql server里只有er ...
- mysql错误日志/var/log/mariadb/mariadb.log,二进制日志
mariadb-日志 IT_luo关注0人评论65人阅读2018-10-15 08:59:03 mariadb日志 mariadb日志: 1.查询日志:query log: 2.慢查询日志:slo ...
- 第五篇 SQL Server代理理解代理错误日志
本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到 ...
- 【译】第五篇 SQL Server代理理解代理错误日志
本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到 ...
- MySQL错误日志(Error Log)
错误日志是一个文本文件,记录了 MySQL Server 每次启动和关闭的详细信息以及运行过程中所有较为严重的警告和错误信息.在遇到问题时,应该首先查看这个文件. 如何开启 使用命令 SHOW VAR ...
- sql server 错误日志errorlog
一 .概述 SQL Server 将某些系统事件和用户定义事件记录到 SQL Server 错误日志和 Microsoft Windows 应用程序日志中. 这两种日志都会自动给所有记录事件加上时间戳 ...
随机推荐
- git 分支管理策略 与 物理实现 --author by阮一峰 & 小鱼
-------------------------下面是阮一峰博士的git branch 逻辑结构图示---------------------------------------------- 如果 ...
- 为Eclipse添加C/C++开发工具
如果你是一个C / C ++开发人员,正在为你的工作寻找一款开源的IDE工具,你可以考虑基于Eclipse的IDE. Eclipse中拥有一个可扩展的插件系统定制让你轻松的来定制你的IDE,它可以支持 ...
- Android之Bean属性通知类
调用: import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import android. ...
- UVA 400 (13.08.05)
Unix ls The computer company you work for is introducing a brand new computer line and is developi ...
- 【泛型】Generic 参数化类型 类型转换
参考: http://blog.csdn.net/lonelyroamer/article/details/7864531#comments http://blog.csdn.net/lonelyro ...
- 用于Web开发的8 个最好的跨平台编辑器
1) Best Cross Platform IDE - Brackets Brackets是一个在前端Web开发和设计人员中最流行的开放源码IDE/代码编辑器之一.它拥有一些实用工具能够将HTML ...
- 伪元素 :Before 和 :After的学习
层叠样式表(CSS)的主要目的是给HTML元素添加样式,然而,在一些案例中给文档添加额外的元素是多余的或是不可能的.事实上CSS中有一个特性允许我们添加额外元素而不扰乱文档本身,这就是“伪元素”. 你 ...
- python中的exec()、eval()以及complie()
参考博客:http://www.cnblogs.com/yyds/p/6276746.html 1.eval函数 函数的作用: 计算指定表达式的值.也就是说它要执行的python代码只能是单个表达式( ...
- Android中操作SQLite数据库
我又回到了安卓的学习当中,忙来忙去终于忙的差不多有时间做自己的事情了,这感觉实在是太棒了!!本来想写android的控件以及他们的监视器的,但是我查了查android的手册,基本上都能查到,但是查有些 ...
- 【Nodejs】nimble或async并不能保证程序串行执行,回调是回避不了的坑
先看一段例程: //------------------------------- // 用于创建目录 //------------------------------- function creat ...