mysql 文件(配置文件,日志文件等)

my.cnf 配置文件

它会按照 /etc/my.cnf -> /etc/mysql/my.cnf -> /usr/local/mysql/my.cnf -> ~/.my.cnf  这样的一个优先级顺序去读取配置文件 如果你想指定默认的参数文件位置 需要配合 --defaults-file 参数

在mysql 中 mysql server 端核心参数 可以通过 show cariables like ‘%参数名称%’ 来查看mysql数据库中的参数

mysql 的参数类型分为 动态参数 和静态参数

动态参数可以通过 set 方法来修改 可以直接通过语句 修改

set global 是代表全局参数,修改完之后 重启mysql 服务 依旧生效

set session  代表回话参数  修改完成之后重启之后不会不再生效

静态参数 ,顾名思义 只能通过修改配置文件来达到目的

mysql日志

总结: mysql日志 一共有6中  innodb日志一共有两种

mysql日志分别为

错误日志(error log)

二进制日志(binary log)

慢查询日志(slow log)

  全量日志(general log)

  审计日志(audit log)

  中继日志(relay log)

innodb日志分别问

undo log

redo log

1 错误日志(error log)

错误日志 一般存放在数据目录下,以error.log 作为文件名的结尾  但是也有的是 存放在 /etc/log/mysql.log

查询 error.log 的位置 sql

show variables like '%log_error%'

记录mysq 启动 关闭 运行 中的 异常信息

2二进制文件日志(binary log)

show cariables like '%log_bin%'  查询binlog 的位置 和是否启动

它和redo log 一样都是用于记录对mysql 数据库真正执行更改的所有操作,而不记录 show 和select 这样的日志, 如果需要记录这些日志的话 需要 开启全量日志 general log  开启的话 会产生大量的日志 不建议开启  默认也是关闭的

主要作用

可以完成主从复制功能, 在主服务器上把所有修改数据的操作记录到binlog 中,通过网络发送给从服务器 ,从服务器读取这些 操作 从而达到主从同步

进行恢复操作,数据可以通过 binlog 日志,使用musqlibnlog命令 实现基于时间点和位置的恢复操作

2 二进制日志文件(binary log)

它和redo log 一样是真正记录对mysql 数据库 执行更改的所有操作,其中不包含没有修改任何数据的语句,也不记录select 和show这样的语句  如果需要记录的话 需要开启全量日志。(默认是不开启的 因为会产生大量的日志)

它的主要作用 是  可以完成主从复制功能,  主服务器将修改数据的 操作记录在文件中,通过网络发送给从服务器,从而达到中从同步

同时他还用于 书的恢复操作,数据可以通过binlog日志 使用mysqlbinlog 命令来实现基于时间点和位置的数据恢复

3慢查询日志(slow log)

慢查询日志是把所有 查过 参数 long_query_time 时间的所有sql语句记录进来 帮助我们发现有问题的sql  进行sql 优化使用的

可以使用 percona-rookit 工具 通过对应的 slow log 来生成慢查询报告

4全量日志(general log)

开启的话 会记录对mysql 所有的操作 包括 select 和 show 默认是关闭的 因为log的量会非常大

5审计日志(audit log 收费组件 只有购买企业版才能使用 )

6 中继日志(relay log)

主从复制中 会将 主服务器发送过来的二进制文件 (binary log) 使用I/O线程 读取并且写入本地relay log 中  然后从服务器的sql 线程会读取 relay log的日志内容 并应用到从服务器中

(详细流程 到主从复制中写)

存储引擎层面的日志

7 redo log  记录事务操作变化 记录的是数据被修改之后的值

8 undo 日志 记录的是事物变成数据之前的值 mvcc 多版本控制就是使用undo log 和回滚段来实现的


你可能感兴趣的:(mysql 文件(配置文件,日志文件等))