mysql 5.7一主多从搭建

  • 安装好mysql并开启bin-log,修改 my.cnf 设置丛库只读

    1
    read_only=ON
  • SSH密钥登录方式设置,3台机器需要相互授权,包括自己本身这台

    1
    2
    3
    4
    ssh-keygen -t rsa
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.11.128
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.11.129
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.11.130
  • 创建mysql数据复制的账号,并授权:

    1
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.%' IDENTIFIED BY 'repl';
  • 找到master的bin-log位置

    1
    show master logs;
  • 根据上面找到的信息设置slave,清空主库日志命令:flush logs;

    1
    2
    3
    stop slave;
    CHANGE MASTER TO MASTER_HOST='192.168.11.129',MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_LOG_FILE='mysql-bin.000007',MASTER_LOG_POS=154;
    start slave;

遇到的一些错误

  • 克隆虚拟机的时候,slave会出现重复的uuid,把 auto.cnf 文件删除,重启mysql会自动生成新的uuid