17.1 MySQL主从介绍;17.2 准备工作;17.3 配置主;17.4 配置从;17.5 测试主从同步

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

17.1 MySQL主从介绍

1. MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的

2. MySQL主从是基于binlog的,主上须开启binlog才能进行主从。

3. 主从过程大致有3个步骤

1)主将更改操作记录到binlog里

2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里

3)从根据relaylog里面的sql语句按顺序执行

4. 主上有一个log dump线程,用来和从的I/O线程传递binlog

5. 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地

MySQL主从原理图:

wKiom1mmrODw6Jh7AAHlLpUgKME282.png17.2 准备工作

1. 在两个centos系统安装mysql,安装方法见:

11.3 MySQL安装(上);11.4 MySQL安装(中);11.5 MySQL安装下

2. hao1机器和hao2机器都启动mysql

3. 两个centos系统:设定hao1主  hao2

wKioL1mmrPfQAQiJAABEe5KovBs242.pngwKioL1mmrQ_ga2VyAABEoQf9Cik562.png17.3 配置主

1. 编辑/etc/my.cnf配置文件:

[root@hao-01 ~]# vim /etc/my.cnf

添加内容:

server-id=128

log_bin=haozc

wKioL1mmrXazapeyAACOyDHvlOs145.png2. 重启mysql

[root@hao-01 ~]# /etc/init.d/mysqld restart

3. 查看/data/mysql/目录下,生成以(log_bin)haozc开头的文件

[root@hao-01 ~]# ls /data/mysql/haozc.*

4. 进入 /data/mysql/目录:

[root@hao-01 ~]# cd /data/mysql/

5. 创建一个新的库库名haozc

[root@hao-01 mysql]# mysql -uroot -phaomima -e "create database haozc"

ceshiku备份恢复haozc库,作为测试数据

6. 备份mysql数据库,做测试

[root@hao-01 mysql]# mysqldump -uroot -phaomima ceshiku > /tmp/ceshiku.sql

7. 把备份的ceshiku.sql库文件,恢复到haozc

[root@hao-01 mysql]# mysql -uroot -phaomima haozc < /tmp/ceshiku.sql

8. hao1机器主  所有mysql数据库备份/tmp/下:

wKiom1mmraPCHjCMAAActS34ZdI705.png

[root@hao-01 mysql]# mysqldump -uroot -phaomima haozc /tmp/haozc.sql

[root@hao-01 mysql]# mysqldump -uroot -phaomima mysql2 > /tmp/mysql2.sql

[root@hao-01 mysql]# mysqldump -uroot -phaomima zrlog > /tmp/zrlog.sql

[root@hao-01 mysql]# mysqldump -uroot -phaomima ceshiku > /tmp/ceshiku.sql

9. 进入mysql(root用户下):

[root@hao-01 mysql]# mysql -uroot -phaomima

10. 创建repl用户,针对ip是hao2从ip

mysql> grant replication slave on *.* to 'repl'@'192.168.211.129' identified by 'haomima';

11. 表状态锁上暂时不能再写入数据

mysql> flush tables with read lock;

12. 查看黄框中两个数值hao2机器需要用这两个数值

mysql> show master status;

wKiom1mmrcKC4AXiAAAj9YKd0c8850.png17.4 配置从

1. 编辑/etc/my.cnf配置文件:

[root@hao-02 ~]# vim /etc/my.cnf

添加内容:

server-id=129

wKioL1mmrcii1lw9AABza28rRzc995.png2. 重启mysql

[root@hao-01 ~]# /etc/init.d/mysqld restart

3. scp命令复制hao1 /tmp/所有以.sql备份的mysql数据库文件,粘贴本机hao2/tmp/目录

[root@hao-02 ~]# scp 192.168.211.128:/tmp/*.sql /tmp/

4. 如果执行找不到mysql -uroot命令,执行下面两条:

[root@hao-02 ~]# alias 'mysql=/usr/local/mysql/bin/mysql'

[root@hao-02 ~]# alias 'mysqldump=/usr/local/mysql/bin/mysqldump'

5. 登录mysql(登录root用户),

[root@hao-02 ~]# mysql -uroot

6. 创建一样的mysql用户haozc

mysql> create database haozc;

mysql> create database mysql2;

mysql> create database ceshiku;

mysql> create database zrlog;

7. 把hao1机器 同步.sql 库文件,恢复到创建对应名称库下:

[root@hao-02 mysql]# mysql -uroot haozc < /tmp/haozc.sql

[root@hao-02 mysql]# mysql -uroot mysql2 < /tmp/mysql2.sql

[root@hao-02 mysql]# mysql -uroot ceshiku /tmp/ceshiku.sql

[root@hao-02 mysql]# mysql -uroot zrlog < /tmp/zrlog.sql

8. 登录mysql执行下面命令:

(master_password='haomima', master_log_file='haozc.000002',17.312节查看 )

[root@hao-02 ~]# mysql -uroot

mysql> stop slave;

mysql> change master to master_host='192.168.211.128',master_user='repl', master_password='haomima', master_log_file='haozc.000002', master_log_pos=559;

mysql> start slave;

9. 查看主从配置是否成功?

mysql> show slave status\G

10. 在hao1机器上,把之前锁定解锁

mysql> unlock tables;

17.5 测试主从同步

配置参数

1. 服务器上:

binlog-do-db=      //仅同步指定的库(其他库不同步)

binlog-ignore-db= //忽略指定库(其他库都同步)

2. 服务器上:

replicate_do_db=   //(不常用)

replicate_ignore_db=   //(不常用)

replicate_do_table=   //(不常用)

replicate_ignore_table=   //(不常用)

replicate_wild_do_table=   //如aming.%, (支持通配符%)

replicate_wild_ignore_table=

测试主从:

1. hao1机器上操作:

[root@hao-01 ~]# mysql -uroot -phaomima

切换数据

mysql> use haozhucong

查看数据所有表

mysql> show tables;

wKiom1mmrhSB1F6VAAANmYtBL5c942.png

2. hao2机器上操作:

[root@hao-02 ~]# mysql -uroot

切换数据

mysql> use haozhucong

查看数据所有表

mysql> show tables;

wKioL1mmrhOSDZCJAAANmYtBL5c377.png

3. hao1机器主 删除(删除表结构,慎重使用):

mysql> drop table biao1;

4. hao2机器从 查看所有表是否还有删除的

mysql> show tables;










本文转自 主内安详 51CTO博客,原文链接:http://blog.51cto.com/zhuneianxiang/1961191,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
SQL 关系型数据库 MySQL
mysql主从复制概述和配置
【10月更文挑战第22天】MySQL 主从复制是一种将主服务器的数据复制到一个或多个从服务器的技术,实现读写分离,提高系统性能和可用性。主服务器记录变更日志,从服务器通过 I/O 和 SQL 线程读取并应用这些变更。适用于读写分离、数据备份和恢复、数据分析等场景。配置步骤包括修改配置文件、创建复制用户、配置从服务器连接主服务器并启动复制进程。
|
9天前
|
Java 关系型数据库 MySQL
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
这篇文章是关于自动化测试项目实战笔记,涵盖了JDK、Tomcat、MySQL、Jpress环境的安装和搭建过程,以及测试用例和常见问题总结。
21 1
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
|
8天前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
32 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
15天前
|
SQL 存储 关系型数据库
Mysql主从同步 清理二进制日志的技巧
Mysql主从同步 清理二进制日志的技巧
19 1
|
26天前
|
消息中间件 canal 关系型数据库
Maxwell:binlog 解析器,轻松同步 MySQL 数据
Maxwell:binlog 解析器,轻松同步 MySQL 数据
161 11
|
29天前
|
关系型数据库 MySQL Go
go抽取mysql配置到yaml配置文件
go抽取mysql配置到yaml配置文件
|
15天前
|
数据可视化 关系型数据库 MySQL
【IDEA】配置mysql环境并创建mysql数据库
【IDEA】配置mysql环境并创建mysql数据库
44 0
|
9天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
43 6
|
7天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
38 3
Mysql(4)—数据库索引
|
9天前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
27 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用