mysql中的日志

=mysql中的数据库

①information_schema 信息数据库:数据字典库--》资产库,存放MySQL里的资产,例如有多少表,库,视图,触发器,存储过程等

②performance_schema 性能架构库

③sys库: MySQL系统

④mysql的核心数据库,类似于sql server中的master表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。

====日志:默认是开启的=

riz

日志的存放路径:/data/mysql

root@sc-mysql mysql\]# pwd /data/mysql 存放日志的文件:sc-mysql.err 、 MySQL的配置文件存放路径:/ect/my.cnf \[root@sc-mysql mysql\]# cat /etc/my.cnf \[mysqld_safe

client

socket=/data/mysql/mysql.sock

mysqld

socket=/data/mysql/mysql.sock

port = 3306

open_files_limit = 8192

innodb_buffer_pool_size = 512M

character-set-server=utf8

mysql

auto-rehash

prompt=\u@\d \R:\m mysql>

为什么需要日志?

日志用来做什么?

1.用来排错

2.用来做数据分析

3.了解程序的运行情况,是否健康--》了解MySQL的性能,运行情况。

1、==错误日志:默认开启=

1、名字是主机名.err:error:如:sc-mysql.err

路径会存放在/data目录下;存放在数据目录下.

root@sc-mysql mysql\]# service mysqld start Starting MySQL.Logging to '/data/mysql/sc-mysql.err'. SUCCESS! 2、error配置: 日志的命名使用_和-都可以: 如果指定错误日志的路径,主要目的地的目录需要给mysql用户写的权限: 使用绝对路径启动有问题: chown mysql:mysql /mysql_log/ 2、==通用日志:默认是关闭的= 1、缺点:消耗大量的磁盘空间;消耗cpu、内存、磁盘资源 优点:会记录所有的SQL操作---审计的作用 general 2、默认是不开启的。可以进行查看 root@(none) 09:36 mysql\>show variables like "general_log"; ±--------------±------+ \| Variable_name \| Value \| ±--------------±------+ \| general_log \| ON \| ±--------------±------+ 1 row in set (0.00 sec) 3、默认存放在数据目录下,名字是主机名.log。 临时开启: mysql\> set global general_log = 1; 1是开启 0 是关闭。修改为1:表示开启。 root@mysql 16:22 mysql\>select @@general_log; ±--------------+ \| @@general_log \| ±--------------+ \| 1 \| ±--------------+ 1 row in set (0.00 sec) 在配置文件中永久开启: #general log general_log general_log_file=/data/mysql/sanchuang_mysql_ge.log 3、=慢日志:记录消耗时长,默认关闭 slow:存放在数据目录下,名字是主机名+slow.log 作用:记录消耗时间比较长的SQL语句,为数据库性能提升提供了线索。 最近数据库压力(负载特别高),客户反应网站或者应用使用特别慢,领导要求你查明原因? 谁去优化?优化什么?:dba人员去优化、运维人员有能力也可以进行优化。 1.SQL语句需要优化,在数据库里启用慢日志,找出执行时间比较长的SQL 2.业务量太大了,硬件已经达到极限了 ,top、glances、dstat 默认的是10秒。 mysql\> show variables like "%long_query%"; ±----------------±---------+ \| Variable_name \| Value \| ±----------------±---------+ \| long_query_time \| 10.000 \| ±----------------±---------+ 1 row in set (0.00 sec) 修改为时长:在配置文件中进行修改: #slow query log slow_query_log = 1 long_query_time = 0.001 #标准 mysql\> show variables like "%long_query%"; ±----------------±---------+ \| Variable_name \| Value \| ±----------------±---------+ \| long_query_time \| 0.001000 \| ±----------------±---------+ 查看查询sql语句的时间为多长时间: ==二进制日志:binary 二进制日志是记录所有数据库表结构变更(例如CREATE、ALTER TBALE...)以及表数据更改(INSERT \\DELETE\\UPDATE\\UPDATE...)的二进制日志。 二进制日志:记录执行的SQL语句 对数据进行修改、增加、删除等。 默认没有开启。 开启二进制日志 查看二进制文件是否开启 root@(none) 10:42 mysql\>show variables like 'server_id'; ±--------------±------+ \| Variable_name \| Value \| ±--------------±------+ \| server_id \| 1 \| ±--------------±------+ 1 row in set (0.01 sec) 查看二进制文件是否开启 root@(none) 10:42 mysql\>show variables like 'log_bin'; ±--------------±------+ \| Variable_name \| Value \| ±--------------±------+ \| log_bin \| ON \| ±--------------±------+ 1 row in set (0.01 sec) 修改二进制文件为开启: 文件路径:/etc/my.cnf log_bin server_id = 1 加入到\[mysqld\]下面: \[mysqld

socket=/data/mysql/mysql.sock

port = 3306

open_files_limit = 8192

innodb_buffer_pool_size = 512M

character-set-server=utf8

log_bin #日志文件名称,未指定位置,默认数据文件位置

server_id=1

server_id 是服务器的唯一标识,在主从复制的时候使用,每天服务器的id不能一样,不然会导致主从复制失败。

修改了之后,重启mysqld:

service mysqld restart

查看二进制文件所存放的文件:这里是存放在|:sc-mysql-bin.000001

root@(none) 11:46 mysql>show master status;

±--------------------±---------±-------------±-----------------±------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

±--------------------±---------±-------------±-----------------±------------------+

| sc-mysql-bin.000001 | 154 | | | |

±--------------------±---------±-------------±-----------------±------------------+

1 row in set (0.01 sec)

作用:

数据恢复:

二进制日志里会记录什么时间发送了什么事情

恢复数据的时候:

1.根据时间来恢复

2.根据位置来恢复Position

可以用来恢复数据:

查看二进制日志===

相关操作:

二进制文件相关操作

SHOW BINARY LOGS 查看所有的二进制文件和大小

SHOW MASTER STATUS 查看当前正在使用那个二进制文件和位置

SHOW BINLOG EVENTS

PURGE BINARY LOGS TO 'WANGJING-MYSQL-bin.000003'

=====mysqlbinlog:查看日志

mysqlbinlog -v:

mysqlbinlog -vv;信息更加多

mysqlbinlog -vv sc-mysql-bin.000001

查看进制日志文件的大小:

二进制日志文件的大小:当二进制文件达到最大值1G的时候,也会产生新的日志。

root@yejing 16:13 mysql>show variables like "%max_binlog%";

±---------------------------±---------------------+

| Variable_name | Value |

±---------------------------±---------------------+

| max_binlog_cache_size | 18446744073709547520 |

| max_binlog_size | 1073741824 |

| max_binlog_stmt_cache_size | 18446744073709547520 |

±---------------------------±---------------------+

3 rows in set (0.00 sec)

root@yejing 16:13 mysql>select 1073741824/1024/1024/1024;

±--------------------------+

| 1073741824/1024/1024/1024 |

±--------------------------+

| 1.000000000000 |

±--------------------------+

1 row in set (0.00 sec)

===二进制都会产生新的日志

二进制文件达到最大值1G的时候,也会产生新的日志。

重启服务。

flush logs::刷新日志。

=position:记录具体的事件的位置,位置号=
time:时间点=

======删除所有的二进制日志

reset master:清除所有的二进制日志。

自动清除日志:https://blog.csdn.net/hanchao5272/article/details/79227325

root@TENNIS 15:01 sc-mysql>show variables like "%expire_logs_days%";

±-----------------±------+

| Variable_name | Value |

±-----------------±------+

| expire_logs_days | 7 |

±-----------------±------+

1 row in set (0.02 sec)

========产生新的二进制日志文件

二进制的格式:1、row level:默认

记录操作的每一行数据 --》表里的哪些行的数据发生了变化

root@(none) 11:13 mysql>select version();

±-----------+

| version() |

±-----------+

| 5.7.26-log |

±-----------+

1 row in set (0.00 sec)

root@(none) 11:13 mysql>show variables like 'binlog_format';

±--------------±------+

| Variable_name | Value |

±--------------±------+

| binlog_format | ROW |

±--------------±------+

1 row in set (0.00 sec)

2、statement level:记录用户输入的SQL语句

相关推荐
Albert Edison2 小时前
【MySQL】表的操作
数据库·mysql·oracle
java1234_小锋2 小时前
Redis线上操作最佳实践有哪些?
数据库·redis·缓存
合作小小程序员小小店2 小时前
web开发,在线%校园,论坛,社交管理%系统,基于html,css,python,django,mysql
数据库·后端·mysql·django·web app
路上^_^3 小时前
安卓基础组件019-引导页布局001
android·安卓
清风6666663 小时前
基于51单片机的空气质量检测PM2.5粉尘检测设计
数据库·单片机·嵌入式硬件·毕业设计·51单片机·课程设计
zhangzeyuaaa4 小时前
从Nginx到Keepalived:反向代理高可用的技术闭环——Nginx、Keepalived、VIP与VRRP的深度联动解析
运维·nginx
梦终剧4 小时前
【Android之路】UI消息循环机制
android·ui
zh_xuan4 小时前
Android android.util.LruCache源码阅读
android·源码阅读·lrucache
梦终剧4 小时前
【Android之路】安卓资源与编译初步
android