news 2026/5/23 20:21:34

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/5/23 20:21:19

Day 34 模块和库的导入

知识点: 1.导入官方库的三种手段 2.导入自定义库/模块的方式 3.导入库/模块的核心逻辑:找到根目录 使用案例 场景1: main.py和circle.py都在同一目录 场景2: main.py和circle.py都在根目录的子目录model/下 场景3: main.py在根目录,circ…

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

CodeSearchNet:一个大规模代码-文档检索数据集的构建、应用与挑战

本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术! 1 引言 在人工智能与软件工程交叉的“代码智能”领域,一个…

作者头像 李华
网站建设 2026/5/23 7:37:18

企业级部署:奇安信天擎在金融行业的实战案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 设计一个金融行业专用的奇安信天擎部署方案。包括网络架构图(DMZ、内网分区)、策略配置模板(如文件监控、进程控制、漏洞防护)、应急…

作者头像 李华
网站建设 2026/5/21 23:02:12

【牛客周赛 107】E 题【小苯的刷怪笼】题解

题目链接 题目大意 给定三个正整数 n,a,kn, a, kn,a,k,其中: nnn 为怪物的数量,nnn 个怪物站成一排,从左到右编号 111 到 nnn;aaa 为 nnn 个怪物的血量和,且每个怪物的血量都是正数;kkk 为小苯…

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

5大技巧让DownKyi成为你的B站视频下载神器

5大技巧让DownKyi成为你的B站视频下载神器 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等)。 项目地址: h…

作者头像 李华