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

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

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,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
6月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
617 7
|
6月前
|
SQL 监控 关系型数据库
查寻MySQL或SQL Server的连接数,并配置超时时间和最大连接量
以上步骤提供了直观、实用且易于理解且执行的指导方针来监管和优化数据库服务器配置。务必记得,在做任何重要变更前备份相关配置文件,并确保理解每个参数对系统性能可能产生影响后再做出调节。
617 11
|
11月前
|
Ubuntu 关系型数据库 MySQL
在Ubuntu 22.04上配置和安装MySQL
以上就是在Ubuntu 22.04上配置和安装MySQL的步骤。这个过程可能看起来有点复杂,但只要按照步骤一步步来,你会发现其实并不难。记住,任何时候都不要急于求成,耐心是解决问题的关键。
1217 31
|
10月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
572 11
|
6月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
456 158
|
6月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
6月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1091 152
|
6月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
847 156
|
6月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
458 156
|
6月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
547 161

推荐镜像

更多