MySQL运维篇——日志和主从复制
2026/6/14 18:05:52 网站建设 项目流程

日志

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

(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;

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询