本次带来的是基于Docker-compose构建出MySQL单节点和主从复制的MySQL环境,本次使用的依旧是bitnami的第三方镜像资源。希望通过这个文章对于学习和使用Docker搭建MySQL的你提供帮助。
1.Docker构建单节点MySQL服务 1.1Docker-compose构建出MySQL节点服务下面提供基于Docker-Compose 构建出单节点的MySQL服务的yml文件:
version: '2.1' services: mysql: image: docker.io/bitnami/mysql:8.0 ports: - '3306:3306' volumes: - 'mysql_data:/bitnami/mysql/data' environment: # ALLOW_EMPTY_PASSWORD is recommended only for development. - ALLOW_EMPTY_PASSWORD=yes healthcheck: test: ['CMD', '/opt/bitnami/scripts/mysql/healthcheck.sh'] interval: 15s timeout: 5s retries: 6 volumes: mysql_data: driver: local1.2 配置信息
- MYSQL_ROOT_USER:数据库管理员用户。缺省值为 。root
- MYSQL_ROOT_PASSWORD:数据库管理员用户密码。无默认值。
下面是Docker-Compose构建MySQL主从复制集群的yml配置文件
version: '2.1' services: mysql-master: image: docker.io/bitnami/mysql:8.0 ports: - '3306' volumes: - 'mysql_master_data:/bitnami/mysql/data' environment: - MYSQL_REPLICATION_MODE=master - MYSQL_REPLICATION_USER=repl_user - MYSQL_USER=my_user - MYSQL_DATABASE=my_database # ALLOW_EMPTY_PASSWORD is recommended only for development. - ALLOW_EMPTY_PASSWORD=yes - MYSQL_ROOT_PASSWORD=my_root_password healthcheck: test: ['CMD', '/opt/bitnami/scripts/mysql/healthcheck.sh'] interval: 15s timeout: 5s retries: 6 mysql-slave: image: docker.io/bitnami/mysql:8.0 ports: - '3306' depends_on: - mysql-master environment: - MYSQL_REPLICATION_MODE=slave - MYSQL_REPLICATION_USER=repl_user - MYSQL_USER=my_user - MYSQL_DATABASE=my_database - MYSQL_MASTER_HOST=mysql-master - MYSQL_MASTER_PORT_NUMBER=3306 - MYSQL_MASTER_ROOT_PASSWORD=my_root_password # ALLOW_EMPTY_PASSWORD is recommended only for development. - ALLOW_EMPTY_PASSWORD=yes healthcheck: test: ['CMD', '/opt/bitnami/scripts/mysql/healthcheck.sh'] interval: 15s timeout: 5s retries: 6 volumes: mysql_master_data: driver: local2.2 配置信息
下面是基于Docker-Compose构建MySQL主从复制的一些环境变量的配置信息:
- MYSQL_REPLICATION_MODE:复制模式。可能的值 /。无默认值。masterslave
- MYSQL_REPLICATION_USER:首次运行时在主服务器上创建的复制用户。无默认值。
- MYSQL_REPLICATION_PASSWORD:复制用户密码。无默认值。
- MYSQL_MASTER_HOST:复制主站(从属参数)的主机名/IP。无默认值。
- MYSQL_MASTER_PORT_NUMBER:复制主服务器的服务器端口(从属参数)。缺省值为 。3306
- MYSQL_MASTER_ROOT_USER:复制主服务器上有权访问 (从属参数) 的用户。默认值为MYSQL_DATABASE=root
- MYSQL_MASTER_ROOT_PASSWORD:复制主服务器上有权访问(从属参数)的用户的密码。无默认值。