mysql主从复制最简单环境搭建(一主一从)

提示:前面有相应的文章利用不同方式进行的主从配置

文章目录

  • 前言
    • 一、概述
    • 二、主从复制的优点
    • 三、原理
    • 四、搭建
    • 五、主库配置
    • 六、从库配置
    • 七、测试


前言

一、概述

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

二、主从复制的优点

MySQL 复制优点主要包含以下三个方面:
1、主库出现问题,可以快速切换到从库提供服务。
2、实现读写分离,降低主库的访问压力。
3、可以在从库中执行备份,以避免备份期间影响主库服务。

mysql主从复制最简单环境搭建(一主一从)_第1张图片

三、原理

mysql主从复制最简单环境搭建(一主一从)_第2张图片

复制分成三步:

1、Master 主库在事务提交时,会把数据变更记录在二进制日志文件 binlog 中
2、从库读取主库的二进制日志文件 binlog ,写入到从库的中继日志 relay log
3、slave重做中继日志中的事件,将改变反映它自己的数据。

四、搭建

准备两台服务器
mysql主从复制最简单环境搭建(一主一从)_第3张图片
服务器上完成mysql的安装并且关闭防火墙数据库能正常登录。

关闭防火墙命令
systemctl stop firewalld
systemctl disable firwalld

五、主库配置

1、修改配置文件 vim/etc/my.cnf

mysql服务器ID,保证整个集群环境唯一,取值范围:1-232-1,默认1
server-id = 1 # 保证服务器的唯一性
#是否只读,1只读,0读写
read-only = 0
#忽略的数据,指不需要同步的数据库
#binlog_ignore-db=mysqlID
#指定同步的数据库,默认都同步
#binlog-do-db=mysqlID

说明:根据实际的应用配置同步的库和不要同步的库,这里没有进行限制

2、重启mysql服务

service mysqld restart

3、登录mysql,创建远程连接的账号,并授予主从复制权限

创建itcast用户,并设置密码,该用户可在任意主机连接该mysql服务
create user ‘itcast’@‘%’ identified with mysql_native_password by ‘Root@123456’;

为itcast用户分配主从复制的权限
grant replication slave on . to ‘itcast’@‘%’


4、查看主库配置的状态
命令:
show master status;(show master status\G;)

mysql主从复制最简单环境搭建(一主一从)_第4张图片

字段含义说明:

file : 从哪个日志文件开始推送日志文件
position : 从哪个位置开始推送日志
binlog_ignore_db : 指定不需要同步的数据库
忽略的数据,
binlog_ignore-db:指不需要同步的数据库

binlog-do-db:指定同步的数据库,默认都同步


六、从库配置

1、修改配置文件 vim/etc/my.cnf
#mysql服务器ID,保证整个集群环境唯一,取值范围:1-2的32-1,和主库不一样即可
server-id = 2
#是否只读,1只读,0读写
read-only = 0

2、mysql重启
service mysql restart

3、登录mysql数据库配置主库信息:

change master to master_host='ip地址' ,master_user ='用户名' ,master_password ='密码' , master_log_file = '文件名' , master_log_pos =xxx;

change master to master_host =‘192.168.200.200’ ,master_user =‘itcast’ ,master_password =‘Root@123456’ , master_log_file = ‘binlog.000004’ , master_log_pos =663;
或者
change master to
master_host=‘192.168.100.57’,
master_port=3306,
master_user=‘repl’,
master_password=‘123456’,
master_log_file=‘mysql-bin-3306.000122’,
master_log_pos=604;

说明:主库的状态信息根据命令show master status在主库中获取到,从库中配置以上两种方式都可以,任选其一即可,

参数说明:

SOURCE_HOST 主库IP地址 MASTER_HOST
SOURCE_USER 连接主库的用户名 MASTER_USER
SOURCE_PASSWORD 连接主库的密码 MASTER_PASSWORD
SOURCE_LOG_ FILE binlog日志文件名 MASTER_LOG_FILE
SOURCE_LOG_POS binlog日志文件位置 MASTER_LOG_POS

4、开启同步
show slave status(从库上运行)
mysql主从复制最简单环境搭建(一主一从)_第5张图片
以上两个参数同时为’yes‘的状态下表示主从复制搭建成功


七、测试

1、在主库上创建数据库、表,并插入数据
create database itcast;

use testdb;

create table tb_user(
id int(11) not null,
name varchar(50) not null,
sex varchar(1),
primary key (id)
)engine=innodb default charset=utf8;

insert into tb_user(id,name,sex) values(1,‘Tom’,‘1’);
insert into tb_user(id,name,sex) values(2,‘Trigger’,‘0’);
insert into tb_user(id,name,sex) values(3,‘Dawn’,‘1’);

2、从库中读取主库的写入即可

你可能感兴趣的:(mysql数据库高级知识,Linux操作mysql,mysql,数据库)