news 2026/3/26 22:52:55

MySQL运维篇——日志和主从复制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL运维篇——日志和主从复制

日志

(错误日志,二进制日志,查询日志,慢查询日志)

(1)错误日志:服务器运行中发生错误时的相关信息 /var/log/

show variables like ‘%log_error%’ ; —查看日志位置

(2)二进制日志binlog:记录了所有DDL语句(数据库和表操作)和DML语句(增删改数据),不包含查询语句。

作用:灾难时数据恢复、mysql主从复制

show variables like ‘%log_bin%’ ; —是否开启,日志文件位置,日志索引

日志格式:statement、row(默认)、mixed,查看show variables like ‘%binlog_format%’ ;

--读日志语句(更新前后的数据都有) mysqlbinlog [option] logfile_name --参数-d指定数据库名称,-o忽略前n行,-v将行事件重构为sql语句 --参数-vv将行事件重构为sql语句,并输出注释信息 mysqlbinlog -v binlog.000002 --日志清理 reset master; --删除全部binlog日志,日志编号将从binlog.ooooo1重新开始 purge master logs to 'binlog.***'; --删除***编号之前的所有日志 purge master logs before 'yyyy-mm-dd hh24:mi:ss'; --删除指定时间之前产生的所有日志 --配置二进制日志的过期时间,设置后过期自动删除 show variables like '%binlog_expire_logs_seconds%';

(3)查询日志:记录所有操作语句,默认查询日志未开启。

show variables like ‘%general%’;

(4)慢查询日志:记录所有执行时间超过long_query_time参数并且扫描记录数不小于min_examined_row_limit的所有sql语句,默认未开启,默认10秒

在配置文件设置

slow_query_log=1 # 开启

long_query_time=2 # 时间参数

主从复制

主从复制:两台服务器,一台主库master,一台从库slave,将主数据库的操作通过二进制日志文件binlog传到从库,从库上对这些日志重新执行(重做),使得两者之间数据保存同步。

MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为主库,实现链状复制。

作用:主库出现问题,快速切换从库提供服务;实现读写分离,降低主库访问压力;可以从库执行备份,避免备份期间影响主库服务;

原理:主库事务提交数据变更记录在binlog——从库读取binlog写入从库的中继日志relaylog——从库重做relaylog中的事件,改变自己的数据;

搭建流程(主库上所有数据库之后的操作都会同步到从库,从binlog.000004的663位置之后开始接收,主库之前已有的历史数据没有同步,增量复制)

--ubuntu的mysql的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf --1、主库修改配置文件并重启 server-id=1 --必须唯一 log-bin=mysql-bin --开启二进制日志 binlog_format=row --设置二进制日志row格式 systemctl restart mysql --2、进入主库mysql,创建复制用户(从库使用来复制binlog) mysql -uroot -p CREATE USER 'repl'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; --授予仅主从复制的权限 FLUSH PRIVILEGES; --刷新权限 --3、查看binlog位置(File binlog.000004 position 663) SHOW MASTER STATUS; --3.1(如果需要做全量同步,主库加全局锁执行mysqldump+文件导入) --4、从库修改配置文件并重启 server-id=2 read_only=1 --只读 systemctl restart mysql --5、进入从库mysql,设置主库配置(主库IP地址,连接主库的用户名和密码,binlog文件名和位置) CHANGE MASTER TO MASTER_HOST='192.168.10.10',MASTER_USER='repl',MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=154; --6、启动从库复制线程,查看复制状态(两个running是yes) START SLAVE; SHOW SLAVE STATUS\G;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/24 16:57:08

单例设计模式

饿汉式单例:在用类前创建好对象,用的时候直接用。懒汉式单例:在用类的时候才创建对象,不提前创建。共同点:两种方式均通过私有化构造函数防止外部直接实例化,并通过静态方法或静态变量提供唯一实例的访问入…

作者头像 李华
网站建设 2026/3/26 3:51:46

百度网盘智能提取码解决方案:技术驱动的自动化访问新体验

百度网盘智能提取码解决方案:技术驱动的自动化访问新体验 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 在数字化资源获取的日常场景中,百度网盘提取码的查找过程往往成为用户体验的瓶颈环节。传统的手…

作者头像 李华
网站建设 2026/3/24 11:05:43

Windows右键菜单终极清理指南:5步打造高效桌面体验

Windows右键菜单终极清理指南:5步打造高效桌面体验 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager Windows右键菜单是日常操作中使用频率最高的功能之…

作者头像 李华
网站建设 2026/3/26 14:56:13

Spring Boot 权限控制三件套:JWT 登录校验 + 拦截器 + AOP 角色注解实战

文章目录接口校验,权限拦截通过自定义注解,基于面向切面编程来实现1. 自定义异常2. 自定义注解3. AOP面向切面类4. Controller层使用统一异常处理和信息返回1. 创建统一信息返回类2. 创建全局统一异常处理类3. 创建一个枚举类型4. 创建自定义的异常类拦截…

作者头像 李华
网站建设 2026/3/24 17:55:04

Python验证码处理实战:从12306项目看验证码识别的技术演进

一、引言:验证码,网络安全的第一道防线 在网络应用中,验证码是防止自动化攻击的重要手段。12306作为中国铁路售票系统,其验证码设计尤为复杂,从早期的数字字母组合,到后来的图片点击,再到如今的…

作者头像 李华
网站建设 2026/3/25 22:28:27

【Hadoop+Spark+python毕设】哮喘患者症状数据可视化分析系统、计算机毕业设计、包括数据爬取、数据分析、数据可视化、Hadoop、实战教学

🎓 作者:计算机毕设小月哥 | 软件开发专家 🖥️ 简介:8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 🛠️ 专业服务 🛠️ 需求定制化开发源码提…

作者头像 李华