• Docker Mysql 只从复制


    masterslave 上安装mysql

    docker pull mysql
    docker run -d --name godfunc-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 --restart=always mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
    

    修改 mysql 容器中的配置 /etc/mysql/my.cnf

    1. master 配置和添加 slave 用户
      #配置
      [mysqld]
      server-id = 1
      log-bin = mysql-bin
      
      -- 添加用户
      CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
      GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
      
    2. slave 配置

    server-id = 2
    log-bin = mysql-slave-bin
    relay_log=edu-mysql-relay-bin
    3. 重启 `mysql` 服务
    docker restart godfunc-mysql
    ```
    4. 将两个数据库的数据库同步(导出sql进行同步)

    连接 masterslave

    1. 查看 master 的状态
      进入到 master 数据库中,执行下面的sql
      show master status
      
      记录下 File(假设为mysql-bin.000001) 和 Position(假设为 2830);
    2. 进入 slave, 连接 master
      change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 2830, master_connect_retry=30;
      
       开启主从复制
      
      start slave
          ```
      查询状态
      
      show slave status G;
      当下面都是 yes 说明已经成功,如果出现 connecting 获取 No,可以查看 `Last_IO_Error` 的提示信息
      
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
  • 相关阅读:
    git
    oracle object_id和data_object_id的区别
    statspack系列8
    statspack系列7
    statspack系列6
    statspack系列5
    statspack系列4
    statspack系列3
    statspack系列2
    MySQL源码之两阶段提交
  • 原文地址:https://www.cnblogs.com/Godfunc/p/10175511.html
Copyright © 2020-2023  润新知