1、安装

  1. version: "3.2"
  2. services:
  3. mysql-master:
  4. image: mysql:5.7
  5. container_name: mysql-master
  6. restart: always
  7. privileged: true
  8. ports:
  9. - "3339:3306"
  10. volumes:
  11. - ./mysql/conf.d:/etc/mysql/conf.d
  12. - ./mysql/my.cnf:/etc/mysql/my.cnf
  13. environment:
  14. MYSQL_ROOT_PASSWORD: 123456
  15. logging:
  16. driver: "json-file"
  17. options:
  18. max-size: "500m"
  19. max-file: "6"
  20. networks:
  21. master:
  22. ipv4_address: 172.172.0.16
  23. networks:
  24. master:
  25. external:
  26. name: docker-ice

my.cnf

  1. [mysqld]
  2. ## 设置server_id,一般设置为IP,同一局域网内注意要唯一
  3. server_id=100
  4. ## 复制过滤:也就是指定哪个数据库不用同步(mysql库一般不同步)
  5. binlog-ignore-db=mysql
  6. ## 开启二进制日志功能,可以随便取,最好有含义(关键就是这里了)
  7. log-bin=edu-mysql-bin
  8. ## 为每个session 分配的内存,在事务过程中用来存储二进制日志的缓存
  9. binlog_cache_size=1M
  10. ## 主从复制的格式(mixed,statement,row,默认格式是statement)
  11. binlog_format=mixed
  12. ## 二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。
  13. expire_logs_days=7
  14. ## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
  15. ## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
  16. slave_skip_errors=1062