mac docker mysql主从配置,实现读写分离

来源:互联网 发布:市场营销实训软件 编辑:程序博客网 时间:2024/06/03 19:34

主机 环境 :mac os x 10.11

docker : DockerToolbox-1.12.1.pkg


==============================================

mysql 的 image 是 library\mysql:latest    从 daocloud下载的


启动两个容器

mysql-master   : 3306

msyql-slave : 3307


在容器里没有vim很难受:

apt-get update 

apt-get install vim

 

1、配置Master主服务器

(1)在Master MySQL上创建一个用户‘repl’,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步。

      1 mysql>create user repl; //创建新用户

      2 mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'mysql'; // 设置密码与权限

(2)找到MySQL安装文件夹修改/etc/mysql/my.cnf文件。 启动二进制日志log-bin。

 注:/etc/mysql/my.cnf里默认配置是空的!

===/etc/mysql/my.cnf=================begin =====================


[mysqld]

server-id=1 //给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号

log-bin=master-bin

log-bin-index=master-bin.index


===/etc/mysql/my.cnf================= end ========================


(3)查看日志

mysql> SHOW MASTER STATUS;

+-------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+-------------------+----------+--------------+------------------+

| master-bin.000001 | 1285 | | |

+-------------------+----------+--------------+------------------+

1 row in set (0.00 sec)


slave需要用的信息:

   日志文件名称:master-bin.000001

   日志的记录点位置:1285


重启 master 的docker 容器实例  


2、配置Slave从服务器 

 

(1)找到MySQL安装文件夹修改/etc/mysql/my.cnf文件。 启动二进制日志log-bin。

 注:/etc/mysql/my.cnf里默认配置是空的!

===/etc/mysql/my.cnf=================begin =====================

[mysqld]

server-id=2

relay-log-index=slave-relay-bin.index

relay-log=slave-relay-bin 


===/etc/mysql/my.cnf================= end ========================


重启 master 的docker 容器实例  


(2)连接Master(如果之前已经change master 过, 需要 stop slave)

=========在slave 上执行============================

mysql > change master to master_host='192.168.99.100',  

master_port=3306,

master_user='repl',

master_password='mysql', 

master_log_file='master-bin.000001’, 

master_log_pos=1285;

=====================================

master  的 地址、端口、登录账号、开始同步的日志信息; 


(3)启动Slave

start slave;


0 1