mysql主从复制及双主复制

之前做过一次在单台机器上的多实例的mysql,这次分开做,使用两台主机。

这里使用的主机地址分别为:

MASTER:192.168.214.135

SLAVE  : 192.168.214.128

这两个主机已经安装过mysql,但是两个数据库数据不一样

主从复制大致步奏

配置MySQL复制基本步骤:

一、master

1、启用二进制日志
log-bin = master-bin
log-bin-index = master-bin.index

2、选择一个惟一server-id
server-id = {0-2^32}

3、创建具有复制权限的用户
REPLICATION SLAVE

二、slave

1、启用中继日志
relay-log = relay-log
relay-log-index =

2、选择一个惟一的server-id
server-id = {0-2^32}

3、连接至主服务器,并开始复制数据;
mysql> CHANGER MASTER TO MASTER_HOST=‘‘,MASTER_PORT=‘‘,MASTER_LOG_FILE=‘‘,MASTER_LOG_FIEL_POS=‘‘,MASTER_USER=‘‘,MASTER_PASSWORD=‘‘;
mysql> START SLAVE;

mysql> START SLAVE IO_Thread;
mysql> START SLAVE SQL_Thread;

下面检查主服务器MASTER的数据库配置文件

[mysqld]
port		= 3306
socket		= /tmp/mysql.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
thread_concurrency = 8
datadir=/mydata/data
log-bin=master-bin
log-bin-index=master-bin.index
binlog_format=mixed
#relay-log = relay-mysql
#relay-log-index = relay-mysql.index
#auto-increment-increment = 2
#auto-increment-offset = 1
server-id	= 1

  下面配置SLAVE的配置文件

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysqldata
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
server-id = 2
relay-log = relay-log
relay-log-index = relay-log.index主从数据库的其他配置项有所不同,这里先不管

 一: 上面主从库的配置文件都设置好后,登录到MASTER库上,创建一个具有复制权限的用户

grant replication slave on *.* to ‘feng‘@‘192.168.%.%‘ identified by ‘fsz123‘;

flush privileges;

slave添加master信息前先查看master库的bin-log日志记录位置节点,master库中执行:

mysql> show master status;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000029 | 107 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.01 sec)

 二:登录从库SLAVE 添加master信息

mysql> change master to  master_host=‘192.168.214.135‘,master_user=‘feng‘,master_password=‘fsz123‘,master_log_file=‘master-bin.000029‘,master_log_pos=323;
Query OK, 0 rows affected (0.15 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 三:启动从库复制:

mysql> SLAVE START;

  执行: show  slave  status\G 查看复制状态

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.214.135
                  Master_User: feng
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master-bin.000029
          Read_Master_Log_Pos: 323
               Relay_Log_File: relay-log.000002
                Relay_Log_Pos: 254
        Relay_Master_Log_File: master-bin.000029
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 从库的IO线程和SQL线程已经开启下面执行show databases; 查看数据库同步状况

  查看从库的数据信息

 Database           |
+--------------------+
| information_schema |
| demo               |
| demo222            |
| demo333            |
| mysql              |
| performance_schema |
| test     主库里新建的demo222,demo333已经到从库中

  //////////////////////////////////////////////////////////////////////////////////////////////////////

mysql的双主模式配置

  

在上面的基础上,再增加双主复制的实现,实现双主模式,在从库中也要开启二进制日志文件,同时主库中也增加slave中继日志功能

编辑从库my.cnf

log-bin=master-bin
log-bin-index=master-bin.index
binlog_format=mixed

relay-log = relay-mysql
relay-log-index = relay-mysql.index
auto-increment-increment = 2
auto-increment-offset = 2

 编辑主库my.cnf 添加slave日志

log-bin=master-bin
log-bin-index=master-bin.index
binlog_format=mixed
auto-increment-increment = 2              #步进值auto_imcrement。一般有n台主MySQL就填nauto-increment-offset = 1               #步进值auto_imcrement。一般有n台主MySQL就填n

  #binlog-ignore=mysql   #忽略mysql库【或者其他不需同步复制的库】

   # replicate-do-db=aa   #要同步的数据库,默认所有库【或者其他指定复制的库】

relay-log = relay-mysql
relay-log-index = relay-mysql.index

  在主库中执行change master to 指令

change master to  master_host=‘192.168.214.128‘,master_user=‘feng‘,master_password=‘fsz123‘,master_log_file=‘master-bin.000001‘,master_log_pos=107;
mysql> flush privileges;

  启动主库中的复制功能

start   slave;

此时,mysql双主复制完成。

原文地址:https://www.cnblogs.com/anay/p/8260661.html

时间: 2024-10-13 00:04:19

mysql主从复制及双主复制的相关文章

Mysql主从复制、二进制日志、基于GTID的主从复制、双主复制

 一.主从复制的工作原理   Mysql在Master与slave之间实现整个复制的过程由3个线程来完成的,   其中两个线程(SQL线程和IO线程)在 Slave端,   另外一个线程(IO)在Master端   要实现Mysql的复制必须首先打开Master端的binary log(也就是二进制日志)否则无法实现. Mysql复制基本过程如下:   (1)Slave上面的IO 线程链接上Master,并且请求指定日志文件的位置(或者 从开始的日志之后的日志内容)   (2)Master接收到

MariaDB数据库主从复制、双主复制、半同步复制、基于SSL的安全复制实现及其功能特性介绍

一.复制概述 MariaDB/MySQL内建的复制功能是构建大型,高性能应用程序的基础.将MySQL的数据分布到多个系统上去,这种分布的机制,是通过将MySQL的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位

MySQL 5.7 双主复制+keepalived,常规业务一般够用了

业务需求: 为Zabbix搭建2个数据库,一个库给服务器监控用,一个库给网络监控用. 硬件: 两台服务器,硬盘是1.2 T SSD卡,内存128G 架构: 希望做双主复制+keepalived,架构大概如下图 主机A IP:192.168.1.2 主机B IP:192.168.1.3 VIP:192.168.1.4 一.首先安装MySQL 5.7 到下面的url下载你操作系统对应的yum包 http://dev.mysql.com/downloads/repo/yum/ 运行下面两个命令安装 r

实现MySQL主从复制、双主模型的简单案例

写在前面:如果此文有幸被某位朋友看见并发现有错的地方,希望批评指正.如有不明白的地方,愿可一起探讨. MySQL复制的基本原理 MySQL复制解决的基本问题 让一台MySQL服务器的数据与其他MySQL服务器的数据保持同步. MySQL复制的工作原理 MySQL复制的工作原理图如下所示(图来自高性能MySQL第3版) MySQL主从复制的基本步骤: 1.启动主库上的二进制文件,并把数据更改记录到二进制日志中: 2.备库将主库上的二进制日志复制到自身的中继日志中: 3.备库读取自身的中继日志中的事

Mysql 5.7双主复制

软件: 主机A IP:192.168.1.201 主机B IP:192.168.1.202 操作系统:centos6.5-x86 Mysql版本:mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz 安装依赖包:yum install  libaio-devel  glibc perl  –y 关闭SElinux及IPtables: /etc/init.d/iptables stop  && setenforce 0 && sed –I 's/

mysql 主从复制+双主复制

我们在使用MySQL Server数据库时,可能会遇到这种问题,如果其中一台mysql数据库宕掉后,我们希望以最短的时间进行解决,并尽快使用数据库,但是如果遇到一些无法快速修复的故障时,该怎么办呢? 我们可以设想,如果这是有另外一台和这个数据库一模一样的数据库时,问题就不一样了,怎么才可以实现实时,并自动的备份或者复制呢?   Mysql的主从复制: 1.主机安装好mysql服务后,首先修改my.cnf文件,添加两行,其中server id确保唯一 2.备机修改my.cnf 3.两台mysql重

MySQL(二):主从复制结构、双主复制结构、利用SSL实现安全的MySQL主从复制

主从复制结构.双主复制结构.利用SSL实现安全的MySQL主从复制 一.主从复制结构实验 1.主服务器配置 可以先更改server_id 在/etc/my.cnf文件中,添加 server_id=11 重启服务,在mysql命令行查看 MariaDB [(none)]> select @@server_id; +-------------+ | @@server_id | +-------------+ |        11 | +-------------+ 1 row in set (0.

mysql主主复制(双主复制)配置步骤

以前我们介绍的都是主从复制,这里给各位介绍一个双主复制了,下面都希望两个主服务器数据自动复制的话可参考一下此文章. MySQL主主复制结构区别于主从复制结构.在主主复制结构中,两台服务器的任何一台上面的数据库存发生了改变都会同步到另一台服务器上,这样两台服务器互为主从,并且都能向外提供服务.有了上一节的主从复制,那么主主复制就很容易了. 一.先修改配置文件 服务器A(192.168.1.254)配置如下 log-bin   = mysql-binserver-id = 1 expire-logs

mysql 双主复制 centos7

mysql 安装请看:http://www.cnblogs.com/leohe/p/6839705.html 双主复制设置 1. 两台虚拟机,都是 centos7 主: 10.1.1.115 从: 10.1.1.116 2. 修改配置文件 2.1 在 10.1.1.115 找到 /etc/my.cnf , 在[mysqld]下添加下列属性 server-id=10 log-bin=mysql-bin binlog-do-db=retail #需要同步的数据库名,如果有多个数据库,可重复此参数,每