一、安装docker
1、准备三台服务器
2、服务器版本,linux 内核版本要大于 3.10
uname -r
3、启动docker
二、安装docker-compose
1、 安装docker-compose
(将包放到/usr/local/bin/ 目录下 ,并赋予执行权限)
三、配置主master
1、配置cnf文件
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
secure-file-priv=/var/lib/mysql-files
lc-messages-dir = /usr/share/mysql
explicit_defaults_for_timestamp
log-bin = mysql-bin
server-id = 1
2、配置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: 666666
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
- /home/mysql/master/mysql-files:/var/lib/mysql-files
- /home/mysql/master/data:/var/lib/mysql
- /home/mysql/master/log:/var/log/
3、启动myssql-master实例
cd /home/mysq/master/
docker-compose up -d
4、 启动成功
四、配置slave (两台虚拟机要同样配置)
1、配置cnf文件
vim /home/mysql/slave/slave.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
secure-file-priv=/var/lib/mysql-files
lc-messages-dir = /usr/share/mysql
explicit_defaults_for_timestamp
log-bin = mysql-bin
server-id = 2
server-id = 3
2、配置docker-compose.yml 文件
version: '3.2'
services:
mysql-slave:
image: "mysql:5.7"
container_name: mysql-slave
restart: always
privileged: true
environment:
MYSQL_ROOT_PASSWORD: 666666
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
- /home/mysql/master/mysql-files:/var/lib/mysql-files
- /home/mysql/master/data:/var/lib/mysql
- /home/mysql/master/log:/var/log/
3、启动myssql-master实例
cd /home/mysql/slave/
docker-compose up -d
4、启动成功
五、配置主从
1、在master节点的 MySQL数据库里创建用户,并授权
GRANT REPLICATION SLAVE ON *.* TO 'master'@'%' identified by 'abc@12345!';
flush privileges;
show master status\G
2、在slave 节点的数据库里指定 CHANGE MASTER TO
CHANGE MASTER TO
MASTER_HOST='192.168.81.10',
MASTER_USER='master',
MASTER_PASSWORD='abc@12345!',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=591;
如果不能执行成功 ,则先stop slave; 在start slave;
然后查看主从状态
show slave status\G
六、测试
在主master 上创建一个数据库,在从库上看能不能实现同步,如果可以,则代表成功