从实践彻底掌握MySQL的主从复制

这篇具有很好参考价值的文章主要介绍了从实践彻底掌握MySQL的主从复制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、本次所用结构如图---一主多从+级联:

二、IP。

三、配置M1:

四、从库M1S1:

 五、从库M2配置:

六、 从库M2S1:


一、本次所用结构如图---  一主多从+级联:

从实践彻底掌握MySQL的主从复制,数据库,mysql,数据库,运维

 二、IP。这里M1S1和M1S2一样的,所以就只展示M1S1了。

主机 IP
M1 192.168.127.160
M1S1 192.168.127.161
M2 192.168.127.163
M2S1 192.168.127.162

三、配置M1:

#配置文件
[root@# masterI ~]# vim /etc/my.cnf
[mysqld]
character-set-server=utf8mb4
log_bin = mysql-bin
server_id = 160
#创建同步用户
M1 [(none)]>grant  replication slave on *.* to 'sync'@'192.168.127.%' identified by 'Sync=12345.';

M1 [(none)]>show grants for 'sync'@'192.168.127.%' ;
+----------------------------------------------------------+
| Grants for sync@192.168.127.%                            |
+----------------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO 'sync'@'192.168.127.%' |
+----------------------------------------------------------+
1 row in set (0.00 sec)

#备份数据库用于slave同步
M1 [(none)]>FLUSH TABLES WITH READ LOCK;    #先锁表
[root@masterI ~]# mysqldump -u root -pRoot=12345. -B haxi school > /backup/all_`date +%F`.sql

#将数据传给从库
[root@# masterI ~]# scp /backup/all_2023-07-25.sql 192.168.127.161:/backup/
root@192.168.127.161's password: 
all_2023-07-25.sql                                                      100% 7435     3.1MB/s   00:00    
[root@# masterI ~]# scp /backup/all_2023-07-25.sql 192.168.127.162:/backup/
root@192.168.127.162's password: 
all_2023-07-25.sql                                                      100% 7435     6.2MB/s   00:00    
[root@# masterI ~]# scp /backup/all_2023-07-25.sql 192.168.127.163:/backup/
root@192.168.127.163's password: 
all_2023-07-25.sql                                                      100% 7435     3.5MB/s   00:00

#当完成备份后解锁:
M1 [(none)]>UNLOCK TABLES;

四、从库M1S1:

#配置文件
[root@Node01 ~]# vim /etc/my.cnf
[mysqld]
character-set-server=utf8mb4
server_id = 161

#将M1已原有的库数据同步到从库 ---其他两个均同
[root@Node01 backup]# mysql -uroot -pRoot=12345. < /backup/all_2023-07-25.sql
[root@Node01 backup]# mysql -uroot -pRoot=12345. -e 'show databases;'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| haxi               |
| mysql              |
| performance_schema |
| school             |
| sys                |
+--------------------+

#查看主库的二进制文件和position
M1 [(none)]>show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql_bin.000005 |      449 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

#指定主库具体信息
M1S1 [(none)]>stop slave;     #---先停止从库同步
Query OK, 0 rows affected (0.01 sec)

M1S1 [(none)]>change master to
    -> master_host='192.168.127.160',   
    -> master_port=3306,
    -> master_user='sync',
    -> master_password='Sync=12345.',
    -> master_log_file='mysql_bin.000005',
    -> master_log_pos=449;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

M1S1 [(none)]>start slave;        #---开启从库同步
Query OK, 0 rows affected (0.01 sec)

检测slave状况mysql> show slave status \G;

从实践彻底掌握MySQL的主从复制,数据库,mysql,数据库,运维

  •  在主库创建一个名为:name1的数据库,到从库查看同步情况。从实践彻底掌握MySQL的主从复制,数据库,mysql,数据库,运维从实践彻底掌握MySQL的主从复制,数据库,mysql,数据库,运维

 五、从库M2配置:

#基本与M1相同,但是M2S2需要从M2同步数据,所以M2需要开启二进制日志文件。
[root@Node03 ~]# vim /etc/my.cnf
[mysqld]
character-set-server=utf8mb4
log_bin = mysql-bin
server_id = 163log_slave_updates=on     #---表示从服务器将M2将来自主服务器的二进制日志事件写入自己的二进制日志中用于自己的从服务器M2S1进行同步
#需要一个用户用于同步
M2S1 [(none)]>grant  replication slave on *.* to 'sync'@'192.168.127.%' identified by 'Sync=12345.';
  •   在主库创建一个名为:name1的数据库,到从库查看同步情况从实践彻底掌握MySQL的主从复制,数据库,mysql,数据库,运维

从实践彻底掌握MySQL的主从复制,数据库,mysql,数据库,运维

六、 从库M2S1:

[root@Node02 ~]# vim /etc/my.cnf
[mysqld]
character-set-server=utf8mb4
server_id = 162

M2 [(none)]>show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql_bin.000001 |      449 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)


M2S1 [(none)]>stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

M2S1 [(none)]>change master to
    -> master_host='192.168.127.163',   
    -> master_port=3306,
    -> master_user='sync',
    -> master_password='Sync=12345.',
    -> master_log_file='mysql_bin.000001',
    -> master_log_pos=449;
Query OK, 0 rows affected, 2 warnings (0.00 sec)

M2S1 [(none)]>start slave;
Query OK, 0 rows affected (0.01 sec)

检查slave状况: 

从实践彻底掌握MySQL的主从复制,数据库,mysql,数据库,运维

  • 四个主机数据库不完全一致是因为我在配置过程中是分开配置检查;
  • 但是通过最后的主库创建的数据库name3可以看到所有从库都能够实现同步 !

从实践彻底掌握MySQL的主从复制,数据库,mysql,数据库,运维 

 文章来源地址https://www.toymoban.com/news/detail-608215.html

到了这里,关于从实践彻底掌握MySQL的主从复制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据库】mysql主从复制与读写分离

      读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE ),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。   因为数据库的\\\"写”(写10000条数据可能要3分钟)操作是比较耗时的。   

    2024年02月11日
    浏览(62)
  • 【数据库七】MySQL主从复制与读写分离

    读写分离,基本的原理是让主数据库处理事务性增、改、删操作 (insert、update、delete),而 从数据库处理select查询操作 。 数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库 。 因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。 但是数据

    2024年02月11日
    浏览(54)
  • Mysql数据库--实现主从复制搭建与同步

    一般数据库都是读取压力大于写数据压力,主从复制即为了实现数据库的负载均衡和读写分离。通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,主服务器只负责写,而从服务器只负责读。 如生产环境中,使用redis数据库作为缓存数据库,用户访问业务数据时,先

    2024年02月08日
    浏览(45)
  • 实现↝Mysql数据库主从复制搭建与同步

    一般数据库都是读取压力大于写数据压力,主从复制即为了实现数据库的负载均衡和读写分离。通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,主服务器只负责写,而从服务器只负责读。 如生产环境中,使用redis数据库作为缓存数据库,用户访问业务数据时,先

    2024年02月10日
    浏览(38)
  • 第90讲:MySQL数据库主从复制集群原理概念以及搭建流程

    1.1.什么是主从复制集群 主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主

    2024年01月20日
    浏览(50)
  • MySQL高级第十七篇:数据库主从复制原理及保证数据一致性

    在实际工作中,我们常常将Redis作为缓存与MySQL来配合使用,当有请求的时候,首先会从缓存中进行查找,如果存在就直接取出,如果不存在再访问数据库。 这样就提升了读取的效率,也减少了对后端数据库的访问压力。 此外,对于一般数据库应用而言,都是 读多写少 的,

    2023年04月25日
    浏览(71)
  • 【数据库】详解数据库架构优化思路(两主架构、主从复制、冷热分离)

    对数据库架构进行优化是为了提高数据库系统的性能、可扩展性、稳定性和可维护性。MySQL官方说:单表2000万数据,性能就达到瓶颈了,为了保证查询效率需要让每张表的大小得到控制。 再来说,为什么要提高查询效率呢? 除了普通的用户查询操作,增、删、改操作都包含

    2024年02月11日
    浏览(36)
  • 数据库应用:Redis主从复制、哨兵、cluster集群

    目录 一、理论 1.Redis高可用 2.Redis主从复制 3.部署Redis主从复制 4.Redis哨兵模式 5.部署Redis哨兵模式 6.Redis集群模式 7.部署Redis集群 二、实验 1.部署Redis主从复制 2.部署Redis哨兵模式 3.部署Redis集群 三、问题 1.开启Redis群集失败 四、总结 (1)概念 在web服务器中,高可用是指服务

    2024年02月15日
    浏览(36)
  • Redis数据库 | 发布订阅、主从复制、哨兵模式、缓存雪崩

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息 Redis 客户端可以订阅任意数量的频道 Redis主从复制是指在Redis中设置一个主节点(Master)和一个或多个从节点(Slave),

    2024年02月15日
    浏览(44)
  • MySQL数据库实现主从同步

    安装MySQL数据库8.0.32 今天来学习数据库主从同步的原理及过程,数据库主要是用来存储WEB数据,在企业当中是极为重要的,下面一起来看下。 MySQL主从复制在中小企业,大型企业中广泛使用,MySQL主从复制的目的是实现数据库冗余备份,将master数据库数据定时同步到slave数据库

    2024年02月02日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包