Sign inSign up

liyuanjie/mysql

By liyuanjie

•Updated over 6 years ago

Image
0

41

liyuanjie/mysql repository overview

使用方法: 需要先安装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

Tag summary

Content type

Image

Digest

Size

79 MB

Last updated

over 6 years ago

docker pull liyuanjie/mysql:5.6.45