centos7下基于docker搭建主从同步

ssh登录到服务器ssh [email protected]

1.安装服务器上安装docker

2.安装好docker后 下载mysql镜像

docker pull mysql:5.6

在根目录执行
 

cd /

mkdir conf

cd conf

touch master.cnf

touch slave.cnf

vi master.cnf

vi slave.cnf

master.cnf内容

mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
symbolic-links=0
character-set-server = utf8
#skip-networking
innodb_print_all_deadlocks = 1
max_connections = 2000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 128
max_allowed_packet = 4M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 28M
key_buffer_size = 4M
thread_cache_size = 8
query_cache_type = 1
query_cache_size = 8M
query_cache_limit = 2M
ft_min_word_len = 4
log-bin = mysql-bin
server-id = 1
binlog_format = mixed
performance_schema = 0
explicit_defaults_for_timestamp
#lower_case_table_names = 1
interactive_timeout = 28800
wait_timeout = 28800
# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M

slave.cnf内容

[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
symbolic-links=0
character-set-server = utf8
#skip-networking
innodb_print_all_deadlocks = 1
max_connections = 2000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 128
max_allowed_packet = 4M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 28M
key_buffer_size = 4M
thread_cache_size = 8
query_cache_type = 1
query_cache_size = 8M
query_cache_limit = 2M
ft_min_word_len = 4
log-bin = mysql-bin
server-id = 2
binlog_format = mixed
performance_schema = 0
explicit_defaults_for_timestamp
#lower_case_table_names = 1
interactive_timeout = 28800
wait_timeout = 28800
# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M

创建启动容器

 docker run -p 3306:3306 --name master -v /conf/master.cnf:/etc/mysql/conf.d/master.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

 docker run -p 3307:3306 --name slave -v /conf/slave.cnf:/etc/mysql/conf.d/slave.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

扫描二维码关注公众号,回复: 5348516 查看本文章

navicat连接数据库

查看启动的容器

docker ps -a

进入master容器 ,连接mysql,密码123456

docker exec -it master /bin/bash

mysql -hlocalhost -uroot -p

查看状态

show master status;
GRANT ALL PRIVILEGES ON *.* TO xym@'%' IDENTIFIED BY '123456'; 
FLUSH PRIVILEGES;

进入slave容器,连接mysql,密码123456

docker exec -it slave /bin/bash

mysql -hlocalhost -uroot -p

查看容器对于ip

docker inspect --format='{{.NetworkSettings.IPAddress}}' master
docker inspect --format='{{.NetworkSettings.IPAddress}}' slave

在slave 容器执行

change master to master_host='172.17.0.2', master_user='xym', master_password='123456', master_port=3306, master_log_file='mysql-bin.000004', master_log_pos= 120, master_connect_retry=30;

查看slave状态;

show slave status;

参考:https://blog.csdn.net/linzhiqiang0316/article/details/79249271

猜你喜欢

转载自blog.csdn.net/resilient/article/details/87969135