MySql Docker 主主配置
MySql 主主
准备2台Linux服务器,并且在两台服务器上,同时安装docker,国内的同学可以使用aliyun的镜像安装。
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
然后,启动MySql 容器
docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker run -p 3306:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
配置第一台服务器的mysql
# 进入mysql 容器
docker container ls
docker exec -it mysql1 /bin/bash
# 安装vim, 如果已经安装,则可以略过
apt-get update
apt-get install vim
# 进入mysql 服务器之后,修改配置文件
cd /etc/mysql
vi my.cnf
# 增加以下配置内容
[mysqld]
server_id = 1
log-bin= mysql-bin
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
read-only=0
relay_log=mysql-relay-bin
log-slave-updates=on
auto-increment-offset=1
auto-increment-increment=2
# 重启mysql服务
service mysql restart
docker container start mysql1
# 创建一个用户来同步数据,重新进入容器,然后登陆mysql
docker exec -it mysql1 /bin/bash
mysql -uroot -p123456
# 这里表示创建一个slave同步账号slave,允许访问的IP地址为%,%表示通配符
GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456';
# 查看状态,记住File、Position的值,在另外一个服务器中将用到
show master status;
# 查看容器IP, 退出mysql
exit;
exit;
docker inspect mysql1 | grep IPA
配置第二台mysql 服务器
# 进入mysql的容器
docker exec -it mysql2 /bin/bash
# 安装vim, 如果已经安装,则可以略过
apt-get update
apt-get install vim
# 修改配置文件
cd /etc/mysql
vi my.cnf
# 增加如下配置
[mysqld]
server_id = 2
log-bin= mysql-bin
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
read-only=0
relay_log=mysql-relay-bin
log-slave-updates=on
auto-increment-offset=2
auto-increment-increment=2
# 重启mysql 服务
service mysql restart
docker start mysql2
docker exec -it mysql2 /bin/bash
mysql -uroot -p123456
# 创建一个用户来同步数据
GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456';
# 设置主库链接,master_host即为容器IP,master_log_file和
master_log_pos即为在mone容器中,通过show master status查出来
的值;
//change master to
master_host='172.17.0.2',master_user='slave',master_passwor d='123456',master_log_file='mysql- bin.000001',master_log_pos=443,master_port=3306;
change master to master_host='159.89.85.150',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=443,master_port=3306;
# 启动同步
start slave ;
# 查看状态
show master status;
# 查看容器IP:
docker inspect mysql1 | grep IPA
# 设置完成后,再次进入第一个服务器的容器
docker exec -it mysql1 /bin/bash
mysql -uroot -p123456
# 设置mtwo主库链接,参数详细说明同上
// change master to
// master_host='172.17.0.3',master_user='slave',master_passwor d='123456',master_log_file='mysql-bin.000003',master_log_pos=443,master_port=3306;
change master to
master_host='157.245.134.29',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=443,master_port=3306;
# 启动同步
start slave;
# 查看状态
show slave status\G;
MySql Docker 主主配置的更多相关文章
- Docker Mysql数据库双主同步配置方法
		一.背景 可先查看第一篇<Docker Mysql数据库主从同步配置方法>介绍 二.具体操作 1.创建目录(~/test/mysql_test1): --mysql --mone --da ... 
- Docker Mysql主主同步配置搭建Demo
		主主同步配置和主从配置很相似,仅需稍做修改就可以了,对主从配置有疑问可以查看 上一篇文章. 进行Docker操作前,先建立目录,我的路径是d:/docker/mysql,目录结构如下: --mysql ... 
- mycat 1.6.6.1安装以及配置docker 安装mysql 5.7.24 双主多从读写分离主主切换
		mycat和mysql的高可用参考如下两个图 简介:应用程序仅需要连接HAproxy或者mycat,后端服务器的读写分离由mycat进行控制,后端服务器数据的同步由MySQL主从同步进行控制. 服务器 ... 
- Docker mysql主主互备和高可用
		一.测试环境 1.1 结构图 1.2 版本 操作系统:CentOS 7.3 MySQL版本:5.6.35 Docker版本:18.06.1-ce 使用root用户操作 IP地址说明 IP地址 用途 备 ... 
- MacOS使用Docker创建MySQL主主数据库
		主从同步配置可以参考上一篇MacOS使用Docker创建MySQL主从数据库 一.创建MySQL数据库容器配置文件对应目录 我们在当前用户下创建一组目录,用来存放MySQL容器配置文件,(Linux下 ... 
- mysql数据库主从及主主复制配置演示
		实验系统:CentOS 6.6_x86_64 实验前提:提前准备好编译环境,防火墙和selinux都关闭 实验说明:本实验共有2台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 实验拓 ... 
- MySql数据库主主同步配置步骤
		测试环境: 192.168.1.192 192.168.1.193 mysql5.2 配置192服务器: /usr/local/mysql/bin/mysql -uroot -p ... 
- mysql主主复制(双主复制)配置步骤
		以前我们介绍的都是主从复制,这里给各位介绍一个双主复制了,下面都希望两个主服务器数据自动复制的话可参考一下此文章. MySQL主主复制结构区别于主从复制结构.在主主复制结构中,两台服务器的任何一台 ... 
- mysql 主主复制(双主复制)+ 配置KEEPALIVED实现热备
		binlog-do-db和replicate-do-db表示需要同步的数据库 binlog-ignore-db和replicate-ignore-db表示不需要同步的数据库 云端服务器为master配 ... 
随机推荐
- 老猿学5G:融合计费场景的离线计费会话的Nchf_OfflineOnlyCharging_Release释放操作
			☞ ░ 前往老猿Python博文目录 ░ 一.Nchf_OfflineOnlyCharging_Release消息交互流程 Nchf_OfflineOnlyCharging_Release是CHF提供 ... 
- Python学习随笔:使用xlwings读取和操作Execl文件
			一.背景 有2种模块可以对Execl文件,一种是xlwt 方式,需要安装三个库文件 xlrd(读Excel)xlwt(写Excel)xlutils(修改Excel),也是网上介绍文章最多的一种方法,一 ... 
- 【面试】关于get和post两种方法的不同。
			最近在面试题和笔试题中经常会看到这道题,所以打算系统的整理一下. 一般标准的答案是这样的. GET在浏览器回退时是无害的,而POST会再次提交请求(浏览器应该告知用户数据会被重新提交). GET产生的 ... 
- IntelliJ IDEA2019.3.2破解/永久激活/安装教程
			我想大家用过史上最好的开发工具就是idea了,没有之一!看到大家都在找idea的激活教程,今天我也在这里跟大家分享一下. 本教程针对现在官网针对的版本是idea2019.3.2,为防止以后会更新破解失 ... 
- javascript中 fn() 和 return fn() 的区别
			在js中用return和不用return,输出结果有的时候傻傻搞不清,之前在网上看到个例子挺经典,不过讲的不清楚,上例子: var i = 0; function fn(){ i++; if ... 
- tengine下载和安装
			tengine简介: Tengine所基于开发的Nginx的意思是Engine-X,Tengine在淘宝开发,所以我们把Engine-X中的X替换成Taobao.Tengine即Taobao-Engi ... 
- 实验:非GTID 一主多从变级联架构
- 七牛云上传视频(后端获取tolen)
			参照网址 https://developer.qiniu.com/kodo/sdk/1242/python #pip install qiniufrom qiniu import Auth #需要填写 ... 
- Loading class `com.mysql.jdbc.Driver'. This is deprecated警告处理
			com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别 mysql客户端6以后,数据库驱动com.mysql.jdbc.Driver'已经被弃用了.应当 ... 
- js--数组的filter()过滤方法的使用
			前言 你还在通过for循环遍历数组吗?你还在遍历之后一项一项的通过if判断过滤你需要的数据吗?你还在写着一大堆代码实现一个简单的过滤数据功能吗?那么,今天他来了.他就是这里要介绍的es6中数组filt ... 
