mysql集群搭建(一主一从、主从复制、读写分离)

架构图如下:

1、主机配置

①修改配置文件my.cnf,要求所有配置项都配置在[mysqld] 栏位下,且都是小写字母。

#[必须]主服务器唯一ID
server-id=1
#[必须]启用二进制日志,指名路径。比如:自己本地的路径/log/mysqlbin
log-bin=atguigu-bin
#[可选] 0(默认)表示读写(主机),1表示只读(从机)
read-only=0
#设置日志文件保留的时长,单位是秒
binlog_expire_logs_seconds=6000
#控制单个二进制日志大小。此参数的最大和默认值是1GB
max_binlog_size=200M
#[可选]设置不要复制的数据库
binlog-ignore-db=test
#[可选]设置需要复制的数据库,默认全部记录。比如:binlog-do-db=atguigu_master_slave
binlog-do-db=需要复制的主数据库名字
#[可选]设置binlog格式
binlog_format=STATEMENT

binlog格式设置:

STATEMENT模式(基于SQL语句的复制(statement-based replication, SBR))

ROW模式(基于行的复制(row-based replication, RBR))

MIXED模式(混合模式复制(mixed-based replication, MBR))

②建立账户并授权(登录mysql之后执行)。【我用的是root用户,拥有所有权限,可跳过】

CREATE USER 'slave-3308'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON . TO 'slave1'@'%';
#此语句必须执行。否则见下面。
ALTER USER 'slave-3308'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;

③查询Master的状态,并记录下File和Position的值。(登录mysql之后)

show master status;

2、从机配置

①修改配置文件my.cnf,要求所有配置项都配置在[mysqld] 栏位下,且都是小写字母。

#[必须]从服务器唯一ID
server-id=2
#[必须]#启用中继日志,其中mysql-relay表示日志的文件名称,文件存放在datadir参数指向的目录下面。
relay-log=mysql-relay

重启后台mysql服务,使配置生效。

②配置需要复制的主机

change master to master_host='172.16.161.135',master_port=3307,master_user='root',master_password='123456',master_log_file='atguigu-bin.000001',master_log_pos=155;

#启动slave同步 START SLAVE; #重启 reset slave; #删除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件

3、搭建过程中可能出现的问题:

执行reset slave可能会报错:ERROR 3081 (HY000): This operation cannot be performed with running replication threads; run STOP SLAVE FOR CHANNEL '' first

解决办法:stop slave;

                  start slave;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值