docker-compose安装mysql一主二从读写分离
一、docker安装
准备3台服务器 ,root@my-study-1 ,root@my-study-2,root@my-study-3
查看服务器的版本 ,Centos 7.X以上,内核版本高于3.10才能支持docker
[ root@my-study-1 ~]
Linux my-study-1 3.10.0-1160.15.2.el7.x86_64
[ root@my-study-1 ~]
分别在3台服务器上安装docker
[ root@my-study-1 ~]
启动docker
[ root@my-study-1 ~]
Redirecting to /bin/systemctl start docker.service
[ root@my-study-1 ~]
二、docker-compose安装
分别在3台服务上安装docker-compose并添加可执行权限
[ root@my-study-1 ~]
[ root@my-study-1 ~]
三、配置并启动主库mysql-master
配置文件准备,目录结构如下
├── home
└── mysql
└── master
└── docker-compose.yml
├── master.cnf
配置 master.cnf
[root@my-study-1 /]# vim /home/mysql/master/master.cnf
[ client]
port = 3306
socket = / var/ run/ mysqld/ mysqld. sock
[ mysqld_safe]
pid- file = / var/ run/ mysqld/ mysqld. pid
socket = / var/ run/ mysqld/ mysqld. sock
nice = 0
[ mysqld]
user = mysql
pid- file = / var/ run/ mysqld/ mysqld. pid
socket = / var/ run/ mysqld/ mysqld. sock
port = 3306
basedir = / usr
datadir = / var/ lib/ mysql
tmpdir = / tmp
lc- messages- dir = / usr/ share/ mysql
explicit_defaults_for_timestamp
log- bin = mysql- bin
server- id = 1
配置docker-compose.yml
version: '3.2'
services:
mysql-master:
image: "mysql:5.7"
container_name: mysql-master
restart: always
privileged: true
environment:
MYSQL_ROOT_PASSWORD: 66666
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M;
ports:
- 3306:3306
volumes:
- /home/mysql/master/master.cnf:/etc/mysql/my.cnf
启动mysql-master实例
[ root@my-study-1 master]
[ root@my-study-1 master]