设为首页 收藏本站
查看: 433|回复: 0

[经验分享] mysql的日志类型及作用

[复制链接]

尚未签到

发表于 2017-11-13 14:38:26 | 显示全部楼层 |阅读模式
当服务起不来或者报错的时候,我们第一时间想到的就是日志,日志这个东西记载了许多重要的信息,有利于我们排除故障。当然,mysql也有日志。
  先来说说,mysql日志的作用,当数据库遭到意外损坏,服务起不来等等,可以通过日志文件来拍错。
还可以利用日志文件来进行数据恢复。

一、日志的分类
1、错误日志:记录了mysql服务的启动,关闭和运行时发生的错误;
2、通用查询日志:记录用户的所有操作,包括启动、关闭服务,插入、查询等语句;
3、二进制日志:以二进制的形式记录了数据库中的操作,但不记录查询语句;
4、慢日志:记录了mysql 所有查询超时的语句

二、日志设置
1、除了二进制日志,其他都是文本文件
2、日志文件通常存储在Mysql数据目录下
3、默认只启动了错误日志功能,其他需要手工启动
4、但启动日志功能会降低Mysql的执行速度,因为一条操作写进日志中是要花时间的

二进制日志
  以二进制文件的形式记录了数据库的操作,但是不记录查询语句,也叫变更日志
  启动与设置二进制日志,在mysql配置文件中添加
1
2
[iyunv@localhost data]# cat /etc/my.cnf
log-bin = /data/mysql-bin




启动与设置二进制日志:在Mysql的配置文件中,log-bin=DIR/filename
DIR是存放二进制日志的目录;
每启动一次Mysql,该目录下就会生成一个filename.00000x的文件;
目录下还有一个filename.index的文件,用于存储所有二进制文件清单;
如果我们没有设置DIR和filename,则默认在数据目录下以hostname-bin.00000x命名

去到/data目录下查看是否有文件生成
[iyunv@localhost ~]# cd /data/
[iyunv@localhost data]# ls
aria_log.00000001  ibdata1      ib_logfile1  mysql-bin.000001  performance_schema  xhk
aria_log_control   ib_logfile0  mysql        mysql-bin.index   test

临时停止与启动二进制日志
1
2
MariaDB [(none)]>  set sql_log_bin=0; 停止
MariaDB [(none)]>  set sql_log_bin=1; 启动



注意:二进制日志文件与数据库数据文件最好不要放在同一块硬盘上,如果存放数据文件的硬盘坏了,可以用另一块硬盘的二进制日志来恢复数据


查看二进制日志
[iyunv@localhost data]# mysqlbinlog mysql-bin.000001

删除二进制日志
删除所有
1
MariaDB [(none)]> reset master;




删除00004之前的所有
1
MariaDB [(none)]> purge master logs to 'mysql-bin.000004';




删除指定日期时间之前的所有
1
MariaDB [(none)]> purge master logs to '2016-08-10 15:00:00';




使用二进制日志还原数据库
[iyunv@localhost data]# mysqlbinlog mysql-bin.000001 | mysql -u root -p
[iyunv@localhost data]# mysqlbinlog mysql-bin.000002 | mysql -u root -p
这条命令可以理解为:使用mysqlbinlog读取二进制日志文件然后使用mysql命令还原到数据库中
注意还原时必须是编号小的先还原

还可以制定你想恢复的时间点
[iyunv@localhost data]# mysqlbinlog --start-position="213" sstop-position="456" mysql-bin.000001 | mysql -u root -p
数值为二进制文件中的pos号

========================================================================

错误日志
主要用于记录Mysql服务的开启、关闭和错误信息,若服务启动不成功第一件事应该就是去看这个错误日志
错误日志是默认开启的,且错误日志无法被关闭
设置错误日志:在配置文件中,log-error=DIR/filename
1
2
[iyunv@localhost ~]# cat /etc/my.cnf
log-error = /data/mysql-error.log




======================================================================
通用查询日志

用来记录用户的所有操作:启动和关闭mysql、更新语句、查询语句
启用和设置通用查询日志:配置文件中,log=DIR/filename

============================================================================
慢查询日志
记录执行时间超过指定时间的执行语句
启动和设置慢查询日志:在配置文件中
log-slow-queries=DIR/filename
long_query_time=n   #设置时间为n秒,默认为10s

删除日志
mysqladmin -u root -p flush-logs




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-407032-1-1.html 上篇帖子: mysql主从同步 下篇帖子: MySQL存储引擎MyISAM与InnoDB的区别
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表