我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎样简单解析mysql主从复制

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎样简单解析mysql主从复制

怎样简单解析mysql主从复制,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

mysql主从复制(冷备)

1.create repl user on master
grant replication slave on *.* to 'repl'@'10.124.110.116' identified by 'doudou123';

  1. root@(none) 10:13>grant replication slave on *.* to 'repl'@'10.124.110.116' identified by 'doudou123';

  2. Query OK, 0 rows affected (0.04 sec)

2.enable BINLOG and set server-id in my.conf and restart server
[mysqld]
log-bin = /mysql/data/3307/mysql-bin.log
server-id = 113

  1. root@(none) 10:35>show variables like '%log_bin%';

  2. +---------------------------------+-------------------------------+

  3. | Variable_name | Value |

  4. +---------------------------------+-------------------------------+

  5. | log_bin | ON |

  6. | log_bin_basename | /mysql/data/3307/mysql-bin.log| <==success

  7. | log_bin_index | /mysql/data/3307/binlog.index |

  8. | log_bin_trust_function_creators | ON |

  9. | log_bin_use_v1_row_events | OFF |

  10. | sql_log_bin | ON |

  11. +---------------------------------+-------------------------------+


  12. root@(none) 10:36>show variables like '%server_id%';

  13. +----------------+-------+

  14. | Variable_name | Value |

  15. +----------------+-------+

  16. | server_id | 113 | <==success

  17. | server_id_bits | 32 |

  18. +----------------+-------+

  19. 2 rows in set (0.00 sec)

3.flush tables
flush tables with read lock;

  1. root@(none) 10:42>flush tables with read lock;

  2. Query OK, 0 rows affected (0.00 sec)

4.show file and position
show master status;

  1. root@(none) 14:57>show master status;

  2. +------------------+----------+--------------+------------------+-------------------+

  3. | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

  4. +------------------+----------+--------------+------------------+-------------------+

  5. | mysql-bin.000008 | 120 | | | |

  6. +------------------+----------+--------------+------------------+-------------------+

5.cold backup
tar -cvf 3307data.tar 3307

6.unlock tables on master
unlock tables;

  1. root@(none) 14:18>unlock tables;

  2. Query OK, 0 rows affected (0.02 sec)

7.set only server-id in my.conf on slave
[mysqld]
server-id = 114
vi auto.cnf
server_uuid=57735006-38f1-11e6-862c-005056beb65f

8.startup server with --skip-slave-start on slave
mysqld_multi start 3307

9.set user,ip,port,replication log and position on slave
change master to
master_host='10.124.110.113',
master_port=3307,
master_user='repl',
master_password='doudou123',
master_log_file='mysql-bin.000008',
master_log_pos=120;

  1. mysql> change master to

  2.     -> master_host='10.124.110.113',

  3.     -> master_port=3307,

  4.     -> master_user='repl',

  5.     -> master_password='doudou123',

  6.     -> master_log_file='binlog.000008',

  7.     -> master_log_pos=120;

  8. Query OK, 0 rows affected, 2 warnings (0.05 sec)

10.startup slave process
start slave;

  1. mysql> start slave;

  2. Query OK, 0 rows affected (0.01 sec)

11.show processlist on slave
show processlist \G

mysql> show processlist \G
*************************** 1. row ***************************
     Id: 1
   User: event_scheduler
   Host: localhost
     db: NULL
Command: Daemon
   Time: 10060
  State: Waiting on empty queue
   Info: NULL
*************************** 2. row ***************************
     Id: 2
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: init
   Info: show processlist
*************************** 3. row ***************************
     Id: 3
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 19
  State: Connecting to master   <=="Waiting for master to send event" is right. and some errors because password is wrong or server_uuid is the same.
## find errors using "show slave status \G"  and modify server_uuid using "auto.cnf" and find server_uuid using "show variables like '%server_uuid%';" ##
   Info: NULL
*************************** 4. row ***************************
     Id: 4
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 19
  State: Slave has read all relay log; waiting for the slave I/O thread to update it
   Info: NULL
4 rows in set (0.00 sec)

  1. this is all right !!!!

  2. mysql> show processlist \G

  3. *************************** 1. row ***************************

  4.      Id: 1

  5.    User: system user

  6.    Host:

  7.      db: NULL

  8. Command: Connect

  9.    Time: 31769

  10.   State: Slave has read all relay log; waiting for the slave I/O thread to update it

  11.    Info: NULL

  12. *************************** 2. row ***************************

  13.      Id: 2

  14.    User: system user

  15.    Host:

  16.      db: NULL

  17. Command: Connect

  18.    Time: 946

  19.   State: Waiting for master to send event

  20.    Info: NULL

  21. *************************** 3. row ***************************

  22.      Id: 3

  23.    User: event_scheduler

  24.    Host: localhost

  25.      db: NULL

  26. Command: Daemon

  27.    Time: 946

  28.   State: Waiting on empty queue

  29.    Info: NULL

  30. *************************** 4. row ***************************

  31.      Id: 5

  32.    User: root

  33.    Host: localhost

  34.      db: test

  35. Command: Query

  36.    Time: 0

  37.   State: init

  38.    Info: show processlist

  39. 4 rows in set (0.00 sec)

12.test change rows on master
use test
show tables;
create table repl_test(id int);
insert into repl_test values(1),(2),(3);
insert into repl_test values(4),(5),(6);
insert into repl_test values(7),(8),(9);

13.show test rows on slave
use test
show tables;

  1. select * from repl_test;


  2. +------+

  3. | id |

  4. +------+

  5. | 1 |

  6. | 2 |

  7. | 3 |

  8. | 4 |

  9. | 5 |

  10. | 6 |

  11. | 7 |

  12. | 8 |

  13. | 9 |

  14. +------+

  15. 9 rows in set (0.00 sec)

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎样简单解析mysql主从复制

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySql主从复制机制全面解析

作为一个关系型数据库,MySQL内建地提供数据复制机制,这使得在使用时,可以基于其复制机制实现高可用架构等高级特性,从而使得MySQL无需借助额外的插件或其他工具就具备适用于生产环境。这是MySQL得到大面积实际应用的条件之一。 基于MyS
2022-05-20

MySQL主从复制详解

①主服务器将所有数据和结构更改记录到二进制日志中。 ②从属服务器从主服务器请求该二进制日志并在本地应用其内容。 ③IO:请求主库,获取上一次执行过的新的事件,并存放到relaylog ④SQL:从relaylog中将sql语句翻译给从库执行 二.主从复制原理
MySQL主从复制详解
2017-03-30

怎样进行MYSQL主从复制的搭建

今天就跟大家聊聊有关怎样进行MYSQL主从复制的搭建,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言:MYSQL的主从复制的原理跟MYSQL的主主复制的原理其实是一样的,但是从数据
2023-06-06

详细分析MySQL主从复制

前言: 在MySQL中,主从架构应该是最基础、最常用的一种架构了。后续的读写分离、多活高可用架构等大多都依赖于主从复制。主从复制也是我们学习MySQL过程中必不可少的一部分,关于主从复制的文章有很多,笔者也来凑凑热闹,写写这方面的内容吧,同
2022-05-13

mysql主从复制怎么用

mysql主从复制是一种数据冗余机制,可将主服务器上的数据复制到从服务器。要使用它,您需要:配置主服务器:启用二进制日志并创建复制用户。配置从服务器:指定主服务器信息并启动i/o和sql线程。启动复制:在从服务器上执行start slave
mysql主从复制怎么用
2024-05-22

mysql主从复制原理,主主复制时主键冲突解决

主从复制原理: 1.master的增删改记录写入binlog; 2.slave的I/O Thread(负责读取master的binlog)读取binlog并将记录写入relaylog; 3.slave的sql thread读取relaylog同步到库; 主主
mysql主从复制原理,主主复制时主键冲突解决
2018-09-26

mysql主从复制怎么搭建

要搭建MySQL主从复制,需要按照以下步骤进行操作:确保主服务器和从服务器上都已安装MySQL。在主服务器上修改配置文件my.cnf,开启二进制日志功能。打开配置文件后,找到[mysqld]部分,在下面添加以下内容:server-id =
mysql主从复制怎么搭建
2024-04-09

mysql主从复制怎么删除

如何删除 mysql 主从复制?停止从服务器上复制线程。清除主服务器上的二进制日志索引表。从主服务器中删除从服务器。在从服务器上重置主服务器信息。启动从服务器上的复制线程。验证主服务器和从服务器上复制状态,确认复制已成功删除。如何删除 My
mysql主从复制怎么删除
2024-05-30

编程热搜

目录