mysql-日志+主从复制

目录

日志

错误日志

存放位置

查看位置

二进制日志

存放位置

查看位置

存放格式

查看二进制日志的存放格式

查看二进制文件

更改二进制日志格式

查询日志

存放位置

慢查询日志

查询慢查询日志是否开启

开启慢查询日志功能

存放位置

主从复制

概述

原理

配置

环境搭建

主库配置

配置主配置文件

重启MySQL服务

创建用户并给予权限

查看二进制日志坐标

从库配置

修改主配置文件

重启MySQL服务

登录mysql,设置从库配置

开启同步操作

查看状态


日志

MySQL日志是数据库服务器操作和事件的记录,对于诊断问题、进行故障排除以及监控服务器至关重要

错误日志

存放位置

/var/log/mysql/mysqld.log

错误日志在mysql服务发生错误时,可以提示错误信息,当系统出现错误时,往往通过查看错误日志,快速解决问题

查看位置
show variables like '%log_error%';

二进制日志

存放位置

/var/lib/mysql/bin/log.index

二进制日志负责记录DDL语句与DML语句,可以用来实现灾难时的数据恢复以及实现主从复制功能

查看位置
show variables like '%log_bin%';
存放格式
二进制日志存放格式表
日志格式含义
statment基于SQL语句记录
row基于行的日志记录
mixed两种混合
查看二进制日志的存放格式
show variables like '%binlog_format%';
查看二进制文件

mysqlbinlog 选项 文件名

-d 指定数据库名,只列举相关数据库 

-o 忽略前n行命令

-v 将行事件重构为SQL数据

-vv 将行时间重构为SQL语句并输出注释信息

更改二进制日志格式
binlog_format=statment

查询日志

查看是否开启查询日志功能:

show variables like '%general%';
存放位置

查询日志默认未关闭状态,可以在主配置文件进行配置,开启此功能

#开启查询日志
general_log=1
#设置日志的文件名,默认为host_name.log
general_log_file=mysql_query.log

重启mysql服务

此时存放文件为:/var/lib/mysql/mysql_query.log

查询日志用来记录DDL,DML,DQL语句,因此占用内存比较高,所以默认为关闭状态

慢查询日志

默认为关闭状态,可以记录执行时间超过long_query_time的SQL语句,可以用于查询语句各种语句的调优

查询慢查询日志是否开启
show variables like '%log_slow%';
开启慢查询日志功能
#开启慢查询日志
slow_query_log=1
#设置时间
long_query_time=2
#允许记录管理语句
log_show_admin_statements=1
#允许记录不适用索引的查询数据
log_queries_not_using_indexes=1

然后重启mysql服务

存放位置

/var/lib/mysql/hostname-slow.log

主从复制

概述

将数据库中的DDL语句和DML语句操作通过二进制文件复制到从服务器中,然后从库对这些日志进行执行,从而保证数据的一致性

原理

①maser在数据提交时,把数据变更记录在二进制日志中

②slave读取master中的二进制文件,写入中继文件中

③slave重新执行中继文件中的事件改变它反映的数据

配置

环境搭建

使用两台服务器,分别运行两个不同的MySQL服务,具体配置如下

基础配置表
主机名ip地址
master192.168.188.10
slave192.168.188.11

可以根据自身情况更改ip地址,但是两台主机应位于同一局域网,关闭防火墙

主库配置
配置主配置文件
#配置mysql服务id,确保集群中id唯一 1-(2^32)-1
server_id=1
#是否只读
read_only=0
#选择要进行同步的数据库
binlog_do_db=db1
#选择不需要同步的数据库
binlog_ignore_db=mysql
重启MySQL服务
systemctl restart mysqld
创建用户并给予权限
#创建用户user_1并且使其可以登陆到任意主机 
create user 'user_1'@'%' identified by root@123;
#分配权限
grant replication slave on *.* to 'user1'@'%';
查看二进制日志坐标
show master status;
从库配置
修改主配置文件
[mysql]
#与master不同即可
server_id=2
#设置slave为只读模式
read_only=1
#设置root用户也只读
super_read_only=1
重启MySQL服务
systemctl enable --now mysqld
登录mysql,设置从库配置
#登录MySQL数据库
mysql -u root -p
#设置slave配置
change replication source to source_host='192.168.188.10',source_user='user_1',source_password='root@123',source_log_file='binlog.000019',source_log_pos=397;
开启同步操作
start replica;
查看状态
show replica status\G;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河中医第一IKUN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值