2019/6/5 mysql主从备份

下载mysql5.7镜像 

docker pull mysql:5.7 

查看下载的镜像docker images 

​        下图可以看到我安装了nginxphpmysql的镜像,这里你们只用安装一个mysql就可以了 

创建容器 

使用docker run命令创建一个容器 

参数说明: 

--name 容器别名 

-d 后台运行容器并返回容器id 

-p 端口映射,格式: -p  本机端口:容器端口   例: -p 33306:3306将本机的33306分配给容器的3306端口 

-e 设置环境变量 

--link 连接其他容器  格式: --link 容器名称:容器别名   例: --link mysql1:mysqltest  连接--name=mysql1的容器 

修改mysql的配置 

查看镜像文档 

在文档中查看如何修改mysql的配置 

查看容器支持的配置选项 

docker run -it --rm 镜像名称及版本号 --verbose --help 
docker run -it --rm mysql:5.7 --verbose --help 

创建mysql容器 

-- server-id=1 修改mysql的配置文件,标识数据库的唯一编号 

--log-bin=mysql-bin=mysql-bin  启动二进制日志并设置二进制日志文件的名字 

创建主库 

docker run --name master -d -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 --server-id=1 --log-bin=mysql-bin 

创建从库1 

docker run --name mysql1 -d -p 33307:3306 -e MYSQL_ROOT_PASSWORD=123456 --link master:mysqlmaster mysql:5.7 --server-id=2 --log-bin=mysql-bin 

创建从库2 

docker run --name mysql2 -d -p 33308:3306 -e MYSQL_ROOT_PASSWORD=123456 --link master:mysqlmaster mysql:5.7 --server-id=3 --log-bin=mysql-bin 

配置mysql主从复制 

给主库创建一个从库复制时用的账号 

从库需要用这个账号来连接主库服务器并读取二进制日志文件实现数据同步 

GRANT replication slave ON *.* TO '用户名'@'允许连接的主机ip' IDENTIFIED BY '密码'; 

GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY '123456'; # %代表任意主机 

获取主库的日志文件及当前日志所记录的位置 

show master status 

获取到这两个参数后就不要再操作主库了 

打开从库执行sql配置主库信息 

master_host 正常情况下这里应该写主库ip,但是我们是在docker,就填写在创建这个从库容器时--link所连接的主库容器的别名 

stop slave; #停止主从复制 
change master to  
  master_host="mysqlmaster", 
  master_user="slave",#主库的用户名 
  master_password="123456",#主库的密码 
  master_log_file="mysql-bin.000003",#二进制日志文件 
  master_log_pos=430;#当前日志所记录的位置 
start slave; #开始主从复制 

查看是否配置成功 

show slave status 

都为Yes就成功了 

再去主库中创建一个数据库试试 

posted @ 2020-08-18 22:35  接近风的地方coc  阅读(80)  评论(0编辑  收藏  举报