mysql配置主从复制基于GTIDs

2018年11月25日 13:59

 
 
用最简单的例子,教你配置基于GTIDs全局事物id的主从配置。mysql从5.7之后,增加了基于全局事务的主从复制,能够省去,log-bin主从复制找坐标的工作。
 

环境说明

 
mysql 8.0.12
 

过程说明

 
下面是两台新装的mysql启用全局事务id主从复制的过程
 
1) 启用log-bin,mysql默认是启动的不需要配置
 
2) master上创建复制用的帐号
 
3) master/slave启用gtid
 
4) slave配置master信息
 
5) slave启动复制
 
6) 检查配置是否成功
 
7) 测试效果
 

master上创建帐号用于复制

 
create user 'repl'@'%' identified by 'password';
grant replication slave on *.* to 'repl'@'%';
 

master启用gtid

#/etc/mysql/my.conf
server-id=1
gtid_mode=ON
enforce-gtid-consistency=true
 

slave启用gtid

server-id=2  #id不能重复
gtid_mode=ON
enforce-gtid-consistency=true
 
 

slave配置master信息

 
change master TO
master_host='192.168.50.111',
master_port=3307,
master_user='repl',
master_password='password',
master_auto_position=1;
 

启动slave

 
start slave
 

查看slave状态

 
#Slave_IO_Running/Slave_SQL_Running两个都是yes表示配置成功
show slave status;
 
 

测试

 
在master创建数据库,slave很快同步过来
 
 

参考来源

 
 

Tags: mysql 主从
评论(15) 阅读(1936)

连接mysql8.0提示认证协议失败

2018年11月05日 00:06

描述

 
    用docker容器安装软件非常方便,省了太多麻烦。通过docker运行mysql8.0,再用navicat客户端连接出现client does not support authentication protocol requested by server。
 
    像似认真失败,检查mysql.user表,已经配置了用户,为什么还出现认真失败?这是因为mysql8.0改了密码加密方法。客户端与服务器端不对应就会出现该错误。
 

正确的docker-compose.yml,通过command指定加密插件

version: "3.1"
services:
    mysqlrepm:
        image: "mysql:8.0.12"
        #指定认证插件
        command: --default-authentication-plugin=mysql_native_password
        environment:
            - MYSQL_ROOT_PASSWORD=111111
        ports:
            - "3307:3306"
 
 

Tags: navicat mysql
评论(33) 阅读(5793)