java1234开源博客系统
博客信息

mysql主从复制配置

发布时间:『 2020-02-23 22:54』  博客类别:Mycat  阅读(2508) 评论(0)

mysql主从复制配置


现在 Mysql主服务器 172.20.0.2   从服务器 172.20.0.3

 

首先主机mysql配置:

打开mysqld.cnf:

添加如下配置:

# 主服务器ID 必须唯一

server-id=2

# 开启及设置二进制日志文件名称

log_bin=mysql-bin

# 要同步的数据库

binlog-do-db =db_java1234

# 不需要同步的数据库

binlog-ignore-db=mysql    

binlog_ignore_db=information_schema

binlog_ignore_db=performation_schema

binlog_ignore_db=sys

# 设置logbin格式

binlog_format= MIXED # binlog日志格式,mysql默认采用statement,建议使用mixed

 

从服务器:

打开mysqld.cnf:

server-id=3

relay-log=mysql-relay 

 

 主服务器创建从机访问用户以及授权:

CREATE USER 'slave1'@'172.20.0.3' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'172.20.0.3';

FLUSH PRIVILEGES;

查看主服务器状态;

SHOW MASTER STATUS

QQ鎴浘20200223223246.jpg

 

从机创建连接主服务器的IP,用户,密码以及日志文件和位置;

CHANGE MASTER TO MASTER_HOST='172.20.0.2', MASTER_USER='slave1', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;

启动主从复制

START SLAVE;

查看从机状态;

SHOW SLAVE STATUS

QQ鎴浘20200223223128.jpg

有两个yes才OK;

假如有 No 或者 Connecting,请看下方日志 或者找到Mysql日志文件查看具体问题;

 

 

 binlog_format详解

mysql复制主要有三种方式:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复制(mixed-based replication, MBR)。对应的,binlog的格式也有三种:STATEMENT,ROW,MIXED。

① STATEMENT模式(SBR)

每一条会修改数据的sql语句会记录到binlog中。优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。缺点是在某些情况下会导致master-slave中的数据不一致(如sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题)

② ROW模式(RBR)

不记录每条sql语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样了。而且不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。缺点是会产生大量的日志,尤其是alter table的时候会让日志暴涨。

③ MIXED模式(MBR)

以上两种模式的混合使用,一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式。

 

 


关键字:   无
关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有