MySQL主从复制

服务器防火墙和服务器安全组需要提前放开端口默认3306
主库配置
systemctl status mysqld  //查看MySQL状态

1、修改 /etc/my.cnf 的配置

//mysql服务id,保证整个集群环境中唯一,取值范围:1 - 2的32次方 -1,默认值为1
server-id = 1
//是否只读,1标识只读,0标识读写
read-only = 0
//忽略的数据,指不需要同步的数据库
#binlog-ignore-db=mysql
//指定同步的数据库
#binlog-do-db=`数据库名称`

2、systemctl restart mysqld  //重启MySQL
   查看是否MySQL启动成功


3、登录mysql,创建远程连接的账号,并授予主从复制权限
#创建itcast用户,并设置密码,该用户可在任意主机连接该MySQL服务
#默认密码复杂程度为大小写+特殊字符+数字

CREATE USER 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456';

#为'itcast'@'%' 用户分配主从复制权限

GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';

#刷新权限
flush privileges;

4、通过指令,查看二进制日志坐标
show master status;
    file:从哪个日志文件开始推送日志文件
    position:从哪个位置开始推送日志
    binlog_ignore_db:指定是否需要同步的数据库

从库:

1、修改 /etc/my.cnf 的配置
server-id = 2
read-only = 1

2、systemctl restart mysqld  //重启MySQL
   查看是否MySQL启动成功

3.登录mysql,设置主库配置

CHANGE REPLICATION SOURCE TO SOURCE_HOST='127.0.0.1', SOURCE_USER='itcast', SOURCE_PASSWORD='Root@123456', SOURCE_LOG_FILE='mysql-bin.000006',SOURCE_LOG_POS=664;

上述是8.0.23中的语法。如果mysql是8.0.23之前的版本,执行如下SQL:

CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='itcast', MASTER_PASSWORD='Root@123456', MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=664;

指令解析:
SOURCE_HOST 或 MASTER_HOST  :主库IP地址

SOURCE_USER 或    MASTER_USER :连接主库的用户名

SOURCE_PASSWORD 或 MASTER_PASSWORD:连接主库的密码

SOURCE_LOG_FILE 或 MASTER_LOG_FILE:读取主库的binlog二进制文件

SOURCE_LOG_POS 或 MASTER_LOG_POS:读取主库的binlog二进制文件的位置

4、开启同步操作
    start replica; #8.0.22之后
    start slave;   #8.0.22之前

5、查看主从同步状态
    show replica status\G; #8.0.22之后
    show slave status\G;   #8.0.22之前

若出现slave_io_running: connecting查看:
1、网络不通

2、密码不对

3、pos不对

测试:

show databases; //查看当前数据库
create database db01;

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

insert into t_user(name,sex) values('tom','1'),('min','1'),('max','0');

show tables;

 

关闭主从复制:
从库:
stop replica;//停止主从复制
    
reset replica; //清除复制配置


主库:
STOP REPLICA IO_THREAD;    //停止复制线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值