惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 皮皮虾的blog

visual studio 2022 安装net旧版本(net framework4.0和4.5) RxJS中高阶映射操作符的全面讲解:switchMap, mergeMap, concatMap (and exhaustMap) 从0到1: Angular + .NET Core 前后端分离项目Compass的开发过程 rxjs学习 - 2 rxjs学习 Asynchronous programming with async and await Angular 表单介绍 TypeScript null undefine判断 TypeScript 常见方法 VMware虚拟机如何设置CentOS 7 磁盘扩容? MySQL 5.7 配置 Mysql 常用命令 MySQL 5.7 Sleep 连接太多的处理方式 MySQL 5.7 CPU高的定位方法 VS2019 设置tab插入空格不好使的解决方法 CentOS 7 MySQL 5.7 主从设置 - 皮皮虾的blog VMware安装CentOS7后配置静态IP MySQL explain,type分析(转) - 2 MySQL explain,Extra分析(转) - 1
MySQL 主从复制相关
皮皮虾的blog · 2021-12-02 · via 博客园 - 皮皮虾的blog

:查看BinLog文件,在哪端都可以。show binlog events in 'mysql-bin.000900' , in 后面跟的是log文件名称

:查看主库,从库同步状态。show master status;  SHOW SLAVE STATUS

:从库操作 STOP SLAVE;:

set global sql_slave_skip_counter=100000;

-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000900',MASTER_LOG_POS=236255749;

START SLAVE;

show variables like 'slave_skip%'; 

https://dba.stackexchange.com/questions/18433/trying-to-understand-show-slave-status-in-mysql

                  

                       

https://dba.stackexchange.com/questions/36909/slave-sql-thread-got-hanged

             

https://blog.csdn.net/weixin_34290631/article/details/91733499

  1. CHANGE MASTER TO的语法如下:

    1. CHANGE MASTER TO option [, option] ...  

    2. option:  

    3.     MASTER_BIND 'interface_name'  

    4.    MASTER_HOST 'host_name'  

    5.    MASTER_USER 'user_name'  

    6.    MASTER_PASSWORD 'password'  

    7.    MASTER_PORT = port_num  

    8.    MASTER_CONNECT_RETRY interval  

    9.    MASTER_RETRY_COUNT = count  

    10.    MASTER_DELAY interval  

    11.    MASTER_HEARTBEAT_PERIOD interval  

    12.    MASTER_LOG_FILE 'master_log_name'  

    13.    MASTER_LOG_POS = master_log_pos  

    14.    MASTER_AUTO_POSITION = {01}  

    15.    RELAY_LOG_FILE 'relay_log_name'  

    16.    RELAY_LOG_POS = relay_log_pos  

    17.    MASTER_SSL = {01}  

    18.    MASTER_SSL_CA 'ca_file_name'  

    19.    MASTER_SSL_CAPATH 'ca_directory_name'  

    20.    MASTER_SSL_CERT 'cert_file_name'  

    21.    MASTER_SSL_CRL 'crl_file_name'  

    22.    MASTER_SSL_CRLPATH 'crl_directory_name'  

    23.    MASTER_SSL_KEY 'key_file_name'  

    24.    MASTER_SSL_CIPHER 'cipher_list'  

    25.    MASTER_SSL_VERIFY_SERVER_CERT = {01}  

    26.    IGNORE_SERVER_IDS = (server_id_list)  

    27.  server_id_list:  

    28.     [server_id [, server_id] ... ]

      change master to配置和改变slave服务器用于连接master服务器的参数,以便slave服务器读取master服务器的binlog及slave服务器的relay log。同时也更新master info及relay log info信息库。执行该语句前如果从机上slave io及sql线程已经启动,需要先停止(执行stop slave)。
       change master to后面不指定某个参数的话,该参数保留原值或默认值。所以后续如果某些参数没有更改的话,change master to后无需带该参数,例如我们只改变了用于复制的用户密码,那么change master to只需针对MASTER_PASSWORD选项作出修改即可,例如:

    1. mysql> stop slave;   

    2. mysql> change master to master_password='new_password';  

    3. mysqlstart slave;

    mysql> CHANGE MASTER TO MASTER_HOST '10.*.*.36', MASTER_USER 'repl', MASTER_PASSWORD 'replpassword', MASTER_PORT 3306, MASTER_AUTO_POSITION 1, MASTER_RETRY_COUNT 0, MASTER_HEARTBEAT_PERIOD 10000;

    3 参数解释
        MASTER_HOST, MASTER_USER, MASTER_PASSWORD,MASTER_PORT四个选项提供了slave从机连接到master主机的信息。
        MASTER_HOST 与 MASTER_PORT:
        分别代表master主机名(或IP地址)及mysql实例端口号。
        注意: 复制不能使用unix socet文件,必须使用tcp/ip 连接到master。
        如果我们指定MASTER_HOST 与 MASTER_PORT参数,slave会认为master与之前的不是同一个(即便MASTER_HOST 与 MASTER_PORT所带的参数与之前相同),之前指定的master的binlog文件名及位置将不再适用。所以如果我们在后面不明确指定MASTER_LOG_FILE 和 MASTER_LOG_POS 的参数值,那么MASTER_LOG_FILE='' 以及 MASTER_LOG_POS=4 将会默认的追加到后面。
        设置MASTER_HOST为空(MASTER_HOST=' ')与不设置该参数是不同的,mysql5.5开始,将MASTER_HOST设为空将会失败并报错【验证】
        MASTER_USER 与 MASTER_PASSWORD:
        连接到master主机复制账户所对应的用户名及密码。
        mysql5.6.4及其后续版本,MASTER_USER不能设置为空;当明确设置MASTER_PASSWORD参数时,MASTER_USER 不能设置为空或不进行设置【验证2.1实例】。
        MASTER_PASSWORD参数对应的密码长度最大为32位字符【验证】,如果字符超长(超过32位),语句会执行成功,但超出的长度会被截取掉,mysql复制的这个问题在mysql5.7版本中得到了修复。
        MASTER_LOG_FILE 与 MASTER_LOG_POS:
        这两项确定slave的io线程下次开始执行时从master开始读取的位置坐标,RELAY_LOG_FILE 与 RELAY_LOG_POS这两项确定slave的sql线程下次开始执行时从relay log开始读取的位置坐标。如果我们指定了MASTER_LOG_FILE 或 MASTER_LOG_POS中的任意一项,就不能再指定RELAY_LOG_FILE 或 RELAY_LOG_POS,也不能指定MASTER_AUTO_POSITION = 1 (mysql5.6.5及其后续版本)。如果二者都没有指定,slave使用上次slave sql线程保存的位置。
        RELAY_LOG_FILE 与 RELAY_LOG_POS:
        change master to操作删除所有relay log文件并创建一个新的,除非我们指定RELAY_LOG_FILE 或 RELAY_LOG_POS。如果全局变量relay_log_purge设置为0(默认为ON),relay log也将会保持。
        mysql5.6.2之前,RELAY_LOG_FILE需要配置绝对路径,mysql5.6.2及其后续版本,可以配置相对路径(相对mysql的data目录)。
        MASTER_AUTO_POSITION:
        该参数在mysql5.6.5版本引入,如果进行change master to时使用MASTER_AUTO_POSITION = 1,slave连接master将使用基于GTID的复制协议。
        使用基于GTID协议的复制,slave会告诉master它已经接收到或执行了哪些事务。计算这个集,slave需要读取全局参数gtid_executed以及通过show slave status获取的参数Retrieved_gtid_set。
        结果集作为初次握手的一部分,发送到master,master发回它已经执行的且不在结果集这部分的所有事务。如果这些事务在master的binlog文件中已经被清除,master将会发送一个ER_MASTER_HAS_PURGED_REQUIRED_GTIDS错误信息到slave,复制将不会开启。
        使用基于GTID的复制时(MASTER_AUTO_POSITION = 1),首先要开启gtid_mode(在my.cnf中设置gtid-mode = ON),MASTER_LOG_FILE 与 MASTER_LOG_POS也不能使用,否则会报错。
        使用GTID后想要恢复到老的基于文件的复制协议,在change master to时需要指定MASTER_AUTO_POSITION = 0以及MASTER_LOG_FILE 或 MASTER_LOG_POSITION中至少一项。
        MASTER_CONNECT_RETRY:
        重连到master时的超时等待时间,默认为60秒。
        MASTER_RETRY_COUNT:
        mysql5.6.1引入该参数,限制重连次数以及更新show slave status输出的Master_Retry_Count列。默认值是24 * 3600 = 86400。MASTER_RETRY_COUNT主要用于替代mysqld服务器参数 --master-retry-count(该参数在mysql5.6.1及其后续版本废除)。MASTER_RETRY_COUNT = 0表示重连次数无限制。
        MASTER_HEARTBEAT_PERIOD:
        设置复制心跳的周期,取值范围为0 到 4294967秒。精确度可以达到毫秒,最小的非0值是0.001秒。心跳信息由master在主机binlog日志文件在设定的间隔时间内没有收到新的事件时发出,以便slave知道master是否正常。
        slave连接到master后,该参数可通过mysql.slave_master_info表查看。