使用方法: 需要先安装docker和docker-compose
先创建网络: docker network create default_bridge
注意:docker-compose-slave.yaml 配置文件中需要修改: MASTER_HOST变量, 改为实际部署的MySQL主节点的IP地址.
### mysql主节点的yml文件配置如下:
# cat docker-compose-master.yaml
version: '2'
services:
mysql-master:
image: liyuanjie/mysql:5.6.45
hostname: mysql56-master
container_name: mysql56-master
shm_size: '2G'
environment:
ROLE: 'MASTER'
MYSQL_ROOT_PASSWORD: 'LIYUANJIEMYSQLpAssword'
LANG: C.UTF-8
ports:
- 3306:3306
volumes:
- /data/mysqlsoft/conf/master-my.cnf:/etc/my.cnf
- /data/basic-data/mysql/master/data:/var/lib/mysql
- /data/basic-data/mysql/master/log:/var/log/mysql
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
restart: always
networks:
- default_bridge
networks:
default_bridge:
external: true
### MySQL从yml文件配置如下:
# cat docker-compose-slave.yaml
version: '2'
services:
mysql-slave:
image: liyuanjie/mysql:5.6.45
hostname: mysql56-slave
container_name: mysql56-slave
shm_size: '2G'
environment:
ROLE: 'SLAVE'
MASTER_HOST: '18.18.23.2'
MASTER_PORT: '3306'
READ_ONLY_USER: 'slaveuser'
READ_ONLY_PASSWORD: 'slavepassword'
MYSQL_ROOT_PASSWORD: 'LIYUANJIEMYSQLpAssword'
LANG: C.UTF-8
ports:
- 3307:3306
volumes:
- /data/mysqlsoft/conf/slave-my.cnf:/etc/my.cnf
- /data/basic-data/mysql/slave/data:/var/lib/mysql
- /data/basic-data/mysql/slave/log:/var/log/mysql
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
restart: always
networks:
- default_bridge
networks:
default_bridge:
external: true
### master配置文件如下:
# cat conf/master-my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
skip-name-resolve
transaction-isolation = READ-COMMITTED
character-set-server=utf8mb4
character-set-client-handshake=FALSE
init_connect='SET NAMES utf8mb4'
collation-server=utf8mb4_unicode_ci
max_connections = 1500
max_allowed_packet = 500M
slow_query_log=1
slow_query_log_file=/var/log/mysql/mysqld-slow.log
long_query_time=5
symbolic-links = 0
tmp_table_size = 256M
max_heap_table_size = 256M
join_buffer_size = 256M
innodb_buffer_pool_size = 4G
innodb_buffer_pool_instances = 2
group_concat_max_len = 102400
#GTID:
server_id = 1
gtid_mode = ON
enforce_gtid_consistency = ON
master_info_repository=TABLE
sync-master-info = 1
sync_binlog = 1
relay_log_info_repository=TABLE
binlog_checksum=NONE
log-bin = binlog
log-slave-updates = ON
binlog_format = row
expire_logs_days = 7
[mysqld_safe]
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock
[mysql]
default-character-set=utf8mb4
### slave的配置文件:
# cat conf/slave-my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
skip-name-resolve
transaction-isolation = READ-COMMITTED
character-set-server=utf8mb4
character-set-client-handshake=FALSE
init_connect='SET NAMES utf8mb4'
collation-server=utf8mb4_unicode_ci
max_connections = 1500
max_allowed_packet = 500M
slow_query_log=1
slow_query_log_file=/var/log/mysql/mysqld-slow.log
long_query_time=5
symbolic-links = 0
tmp_table_size = 256M
max_heap_table_size = 256M
join_buffer_size = 256M
innodb_buffer_pool_size = 4G
innodb_buffer_pool_instances = 2
group_concat_max_len = 102400
#GTID:
server_id = 2
gtid_mode = ON
enforce_gtid_consistency = ON
master_info_repository=TABLE
sync-master-info = 1
sync_binlog = 1
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_bin = binlog
log-slave-updates = ON
binlog_format = row
expire_logs_days = 7
[mysqld_safe]
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock
[mysql]
default-character-set=utf8mb4
### 开始构建MySQL主节点:
# docker-compose -f docker-compose-master.yaml up -d --build --force-recreate
### 开始构建MySQL从节点:
# docker-compose -f docker-compose-slave.yaml up -d --build --force-recreate
Content type
Image
Digest
Size
79 MB
Last updated
over 6 years ago
docker pull liyuanjie/mysql:5.6.45