mysql 5.5 主从配置

master 跑在虚拟机上,slave 在虚拟机里用的 docker 跑的
master
  • 配置 my.cnf:
    log-bin=mysql-bin-master  #启用二进制日志
    server-id       = 1   #本机数据库ID 标示
    binlog-do-db=HA   #可以被从服务器复制的库。二进制需要同步的数据库名
    binlog-ignore-db=mysql  #不可以被从服务器复制的库
  • 创建给从库使用的账号

    create user 'slave'@'172.17.0.2' identified by '123456';
    grant replication slave on *.* to 'slave'@'172.17.0.2';

    如果 ip 地址换了,可用如下命令修改:
    RENAME USER user@ipaddress1 TO user@ipaddress2;

  • 取消 ip 连接限制:注释掉 my.cnf 中的 bind-address

    
    #bind-address
    

    因为在创建给 slave 使用的账号的时候已经指定了 ip,所以注释掉不会产生很严重的安全问题,可能需要在防火墙上做处理。

  • 查看 bin log

    mysql> show binlog events;
    
    *************************** 1. row ***************************
    Log_name: mysql-bin.000001
        Pos: 4
    Event_type: Format_desc
    Server_id: 1
    End_log_pos: 107
       Info: Server ver: 5.5.35-1ubuntu1-log, Binlog ver: 4
    *************************** 2. row ***************************
    Log_name: mysql-bin.000001
        Pos: 107
    Event_type: Stop
    Server_id: 1
    End_log_pos: 126
       Info: 
    2 rows in set (0.00 sec)

    注意开始文件是在 mysql-bin.000001,开始位置 4

slave
  • docker
    sudo docker run -d -v /home/ksun/mysqlMS/slave:/etc/mysql -v /home/ksun/mysqlMS/log_slave:/var/log/mysql --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 mysql:5.5

  • 配置 my.cnf
    这里使用自定义的 mysql 配置文件,所以把 host(ubuntu 14) 的 my.cnf 复制到了 docker 里,重启容器后报错退出了,需要修改下配置文件注释掉如下两行:

#basedir        = /usr //Path to installation directory. All paths are usually resolved relative to this.
#lc-messages-dir    = /usr/share/mysql //The directory where error messages are located. 

修改 server-id :

server-id = 2  #从服务器ID号,不要和主ID相同 ,如果设置多个从服务器,每个从服务器必须有一个唯一的server-id值,必须与主服务器的以及其它从服务器的不相同。可以认为server-id值类似于IP地址:这些ID值能唯一识别复制服务器群集中的每个服务器实例。
  • 开启 主从复制
mysql> change master to master_host='172.17.0.1',master_user='slave',master_password='123456', master_log_file='mysql-bin.000001' ,master_log_pos= 4
mysql> start slave; 
//查看 slave 状态
mysql> show slave status\G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值