一、四种日志 日志存放位置:数据目录下 [root@s200 ~]# cd /data/mysql/ 1、错误日志:记录mysql服务器的启动、运行及关闭过程,默认以.err结尾 mysql> show variables like 'log_error'; +---------------+------------------------------------+ | Variable_name | Value | +---------------+------------------------------------+ | log_error | /data/mysql/mysqlerror.err | +---------------+------------------------------------+ 2、二进制日志*** 记录用户对数据库所做的所有的ddl和dml操作,不会记录查询语句,对数据的灾难恢复有至关重要的作用。 ddl:create、alter、drop、truncate dml:insert、update、delete 二进制日志作用:数据恢复、AB复制 /data/mysql/mysql-bin.XXXXXX 3、通用查询日志:记录所有对数据库的请求信息(包括登录、查询等),默认不开启 日志量较大、占用磁盘空间,一般不开启 默认名字:主机名.log 4、慢查询日志:记录的是查询时间超过指定时间的查询语句,一般用于优化查询 默认也是不开启的 二、开启各种日志,修改配置文件 1、开启通用查询日志,指定日志文件名 在mysqld段添加如下行: log=general_select_log //等号右侧的日志文件名字自定义 [root@s200 mysql]# /etc/init.d/mysqld restart [root@s200 mysql]# ls /data/mysql/general_select_log 验证:在mysql>里面执行一些查询语句,看该文件是否有相应内容。 2、开启慢查询日志,指定日志文件名,设置超时时间 在mysqld段添加如下行: log-slow-queries=slow_log //开启慢查询日志,规定日志文件的名字 long_query_time=5 //设置慢查询超时时间 [root@s200 mysql]# /etc/init.d/mysqld restart [root@s200 mysql]# ls /data/mysql/slow_log mysql> select sleep(6); //执行一个查询超过5秒的操作 查看slow_log是否有相关记录。 3、错误日志,修改前缀名 在mysqld段添加如下行: log-error=errorlog //日志文件名变为errorlog.err [root@s200 mysql]# /etc/init.d/mysqld restart [root@s200 mysql]# ls /data/mysql/errorlog.err 4、开启二进制日志 log-bin=mysql-bin //开启二进制日志,原来有该行 log-bin-index=mysql-bin.index //后添加的,一般不改 三、二进制日志的查看 mysqlbinlog [root@s200 mysql]# mysqlbinlog mysql-bin.000014 # at 107 //事件发生的位置信息 #140826 9:54:36 //事件发生的时间信息 [root@s200 mysql]# mysqlbinlog mysql-bin.000014 | less 四、如何使用二进制日志进行数据恢复? 假设凌晨2点有完全备份,早上9点数据库出现问题。 完全恢复: 先用全备将数据恢复到2点;剩余的使用二进制日志恢复到9点。 1、根据时间点进行恢复 mysql> use up2; mysql> create table t1 (id int); mysql> insert into t1 values(1); mysql> insert into t1 values(2); mysql> insert into t1 values(3); mysql> insert into t1 values(4); mysql> delete from t1 where id=3; mysql> delete from t1 where id=4; mysql> select * from t1; +------+ | id | +------+ | 1 | | 2 | +------+ 2 rows in set (0.01 sec) 10:18:56 10:18:59 [root@s200 mysql]# mysqlbinlog --start-datetime='2024-08-26 10:18:56' --stop-datetime='2024-08-26 10:45:41' mysql-bin.000016 //找对时间段 [root@s200 mysql]# mysqlbinlog --start-datetime='2024-08-26 10:18:56' --stop-datetime='2024-08-26 10:45:41' mysql-bin.000016 | mysql -uroot -p Enter password: //恢复的操作 2、根据位置点进行恢复 mysql> drop table t1; [root@s200 mysql]# mysqlbinlog --start-position=272 --stop-position=1078 mysql-bin.000016 //找起始和结束位置点 [root@s200 mysql]# mysqlbinlog --start-position=272 --stop-position=1078 mysql-bin.000016| mysql -uroot -p //向表中恢复数据 Enter password: 五、对日志的管理 删除日志 不要轻易删除 1)删除某个日志文件之前的所有日志 mysql> purge master logs to 'mysql-bin.000008'; //删除mysql-bin.000008以前的日志(不包含8) 2)删除多少天以前的日志文件 mysql> purge master logs before date_sub(current_date,interval 1 day); 3)重置二进制日志 mysql> reset master; //从000001开始重新计数 4)手动生成新的二进制日志文件 mysql> flush logs; 查看日志信息 mysql> show master logs; //显示二进制日志文件的信息,包括名字和大小
MySQL的日志管理
来源:这里教程网
时间:2026-03-01 18:32:52
作者:
编辑推荐:
- MySQL的日志管理03-01
- 解析binlog里记录的events以及mysqlbinlog的使用03-01
- MySQL Proxy03-01
- mysqldump使用示例03-01
- MySQL优化插入速度的一些思路03-01
- MySQL 忘记root密码的两种解决方法03-01
- MySQL影响性能的几个参数03-01
- MySQL如何清理binlog日志03-01
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 解析binlog里记录的events以及mysqlbinlog的使用
解析binlog里记录的events以及mysqlbinlog的使用
26-03-01 - 好书推荐,硬核指南让MySQL不再“黑箱“
好书推荐,硬核指南让MySQL不再“黑箱“
26-03-01 - MySQL基础维护实操手册:从启停到备份恢复
MySQL基础维护实操手册:从启停到备份恢复
26-03-01 - 数据库数据恢复—Mysql数据库误删除全表数据的数据恢复案例
数据库数据恢复—Mysql数据库误删除全表数据的数据恢复案例
26-03-01 - MySQL 基线核查实录:标准化配置与命令验证全解析
MySQL 基线核查实录:标准化配置与命令验证全解析
26-03-01 - 别再用 MySQL Workbench 了,快试试 SQLark!
别再用 MySQL Workbench 了,快试试 SQLark!
26-03-01 - MySQL锁定位实践指南
MySQL锁定位实践指南
26-03-01 - MySQL 9.4.0 正式发布,支持 RHEL 10 和 Oracle Linux 10
- MySQL5.7并行复制演变之路
MySQL5.7并行复制演变之路
26-03-01 - AI生成数据库运维平台,支持数据库一键安装、一键备份、一键巡检!
AI生成数据库运维平台,支持数据库一键安装、一键备份、一键巡检!
26-03-01
