创建目录和配置文件

  1. mkdir -p mysql_sharding/{mysql_3306/config,mysql_3307/config} \
  2. && touch mysql_sharding/mysql_3306/config/my.cnf \
  3. && touch mysql_sharding/mysql_3307/config/my.cnf \
  4. && touch mysql_sharding/docker-compose.yml

编辑配置文件

mysql_3306/config/my.cnf

  1. [mysqld]
  2. # 解决docker启动连接慢的问题
  3. skip-name-resolve
  4. server-id=1
  5. port=3306
  6. default-storage-engine=INNODB
  7. character_set_server=utf8
  8. init_connect='SET NAMES utf8'
  9. lower_case_table_names=1
  10. max_connections=200
  11. max_connect_errors=10
  12. # 开启二进制日志
  13. log-bin=mysql-bin
  14. log_bin-index=mysql-bin.index
  15. log_bin_trust_function_creators=ON
  16. binlog-format=ROW
  17. # 设置自增起始偏移量
  18. auto_increment_offset=1
  19. # 设置自增步长
  20. auto_increment_increment=1
  21. # 开启慢查询日志
  22. slow_query_log=ON
  23. # 设置慢查询时间阈值
  24. long_query_time=1
  25. # 设置慢查询日志文件位置
  26. slow_query_log_file=/var/lib/mysql/slow_query.log

mysql_3307/config/my.cnf

  1. [mysqld]
  2. # 解决docker启动连接慢的问题
  3. skip-name-resolve
  4. server-id=2
  5. port=3307
  6. default-storage-engine=INNODB
  7. character_set_server=utf8
  8. init_connect='SET NAMES utf8'
  9. lower_case_table_names=1
  10. max_connections=200
  11. max_connect_errors=10
  12. # 开启二进制日志
  13. log-bin=mysql-bin
  14. log_bin-index=mysql-bin.index
  15. log_bin_trust_function_creators=ON
  16. binlog-format=ROW
  17. # 设置自增起始偏移量
  18. auto_increment_offset=1
  19. # 设置自增步长
  20. auto_increment_increment=1
  21. # 开启慢查询日志
  22. slow_query_log=ON
  23. # 设置慢查询时间阈值
  24. long_query_time=1
  25. # 设置慢查询日志文件位置
  26. slow_query_log_file=/var/lib/mysql/slow_query.log

mysql_master_slave/docker-compose.yml

  1. version: '3'
  2. services:
  3. mysql_3306:
  4. image: mysql:8.0.21
  5. container_name: mysql_3306
  6. ports:
  7. - 3306:3306
  8. privileged: true
  9. volumes:
  10. - ./mysql_3306/config:/etc/mysql/conf.d
  11. - ./mysql_3306/data:/var/lib/mysql
  12. - ./mysql_3306/logs:/var/log/mysql
  13. environment:
  14. - MYSQL_ROOT_PASSWORD=root
  15. - MYSQL_USER=admin
  16. - MYSQL_PASSWORD=admin
  17. - TZ=Asia/Shanghai
  18. mysql_3307:
  19. image: mysql:8.0.21
  20. container_name: mysql_3307
  21. ports:
  22. - 3307:3307
  23. privileged: true
  24. volumes:
  25. - ./mysql_3307/config:/etc/mysql/conf.d
  26. - ./mysql_3307/data:/var/lib/mysql
  27. - ./mysql_3307/logs:/var/log/mysql
  28. environment:
  29. - MYSQL_ROOT_PASSWORD=root
  30. - MYSQL_USER=admin
  31. - MYSQL_PASSWORD=admin
  32. - TZ=Asia/Shanghai
  33. networks:
  34. default:
  35. external:
  36. name: service_network

启动服务

  1. docker-compose up -d