码迷,mamicode.com
首页 > 数据库 > 详细

Mysql主从复制

时间:2021-06-02 12:15:39      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:方式   镜像   -name   安装centos   mamicode   名称   数据   二进制日志   load   

引言

在生产环境中,数据库的查询请求压力较大的时候,通常需要采取数据库主从模式,读写分离的方式来提高数据库查询效率,本文就教大家如何搭建Mysql主从服务器配置
技术图片

安装两台Mysql服务器

为了模拟生产环境,本文教程采取docker容器的方式安装mysql,搭建Mysql主从服务

docker安装mysql

docker安装教程请参照另一篇博文(内含docker安装mysql容器教程) 物理机安装Centos系统

  1. 拉取镜像
#拉取最新mysql镜像
docker pull mysql

2.安装主从Mysql(master和slave)

#为了在物理机里面能够方便的修改mysql配置文件my.cnf,特将容器内my.cnf映射到物理机目录中
#创建目录mysql_01和mysql_02,子级目录都是如下,并提前准备my.cnf文件放置于conf目录内
├── conf
│   └── my.cnf
└── data
#创建Mysql 主(master)服务器容器,命名为mysql_01
docker run -itd --name mysql_01 -p 33061:3306  -v /home/data/docker/mysql_01/data:/var/lib/mysql -v /home/data/docker/mysql_01/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
#mysql_01容器内的IP:172.17.0.4
#mysql_01容器内的Mysql服务器端口:3306

#创建Mysql 从(slave)服务器容器
#Mysql 从服务器(slave)安装方式与master一致,命名为mysql_02
docker run -itd --name mysql_02 -p 33061:3306  -v /home/data/docker/mysql_02/data:/var/lib/mysql -v /home/data/docker/mysql_02/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
#mysql_02容器内的IP:172.17.0.5
#mysql_02容器内的Mysql服务器端口:3306

3.配置master主服务器
编辑my.cnf文件 vim /home/data/docker/mysql_01/conf/my.cnf
添加内容至[mysqld]结点内,如下

#二进制文件名称
log-bin=master-bin
#二进制日志格式,有row、statement、mixed三种格式,row指的是把改变的内容复制过去,而不是把命令在从服务器上执行一遍,statement指的是在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。mixed指的是默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。
binlog-format=ROW  
#要求各个服务器的id必须不一样
server-id=1
#同步的数据库名称(可心设置多个,添加多行 binlog-do-db=db_name)
binlog-do-db=am

# 不需要同步的数据库
binlog_ignore_db=information_schema
binlog_ignore_db=mysql
binlog_ignore_db=performance_schema
binlog_ignore_db=test

Mysql主从复制

标签:方式   镜像   -name   安装centos   mamicode   名称   数据   二进制日志   load   

原文地址:https://www.cnblogs.com/yanchuanbin/p/14815209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!