`
jiasongmao
  • 浏览: 670759 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

MySQL实现主从复制

 
阅读更多

MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解

 

注意:MySQL 5.6版本和之前版本的配置不同,本文针对5.6以及更高版本.

 

安装环境

操作系统:Windows7
数据库版本:MySQL 5.6
Master和Slave都在同一台电脑上

 

基本环境配置

配置主库Master

1.将压缩版的mysql解压到C:\Program Files\MySQL目录下,目录名称更改为mysql-5.6.20-3306

2.将my-default.ini文件重命名为my.ini

3.配置如下3个参数

   basedir = C:\Program Files\MySQL\mysql-5.6.20-3306

   datadir = C:\Program Files\MySQL\mysql-5.6.20-3306\data

   port = 3306

4.进入bin目录,按下Shift键的同时,右击鼠标,从右键菜单中选择"从此处打开命令窗口",在窗口中输入:

   mysqld  -install  mysql_3306

通过上述3步,占用3306端口的mysql服务即可创建完毕,启动该服务即可(net start mysql_3307).

 

配置从库Slave

1.将压缩版的mysql解压到C:\Program Files\MySQL目录下,目录名称更改为mysql-5.6.20-3307

2.将my-default.ini文件重命名为my.ini

3.配置如下3个参数

   basedir = C:\Program Files\MySQL\mysql-5.6.20-3307

   datadir = C:\Program Files\MySQL\mysql-5.6.20-3306\data

   port = 3307

4.进入bin目录,按下Shift键的同时,右击鼠标,从右键菜单中选择"从此处打开命令窗口",在窗口中输入:

   mysqld  -install  mysql_3307

通过上述3步,占用3306端口的mysql服务即可创建完毕,启动该服务即可(net start mysql_3307).

 

Master的配置

修改my.ini文件

log-bin=mysql-bin
server-id=2
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
binlog-do-db=shoppingdb

这里的server-id用于标识唯一的数据库,这里设置为2,在设置从库的时候就需要设置为其他值。

binlog-ignore-db:表示同步的时候ignore的数据库 
binlog-do-db:指定需要同步的数据库

 

1、然后重启mysql_3306服务

2、登录数据库服务器。

3、 赋予从库权限帐号,允许用户在主库上读取日志,赋予Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。

在Master数据库命令行中输入:

GRANT FILE ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

 注意:           'root'@'%'      root代表登录数据库的用户名,%代表所有计算机.该参数也可以写成从库客户机的IP,比如从库所在的计算机IP为192.168.1.23,则可以写为:  'root'@'192.168.1.23' 

 

4、重启mysql,登录mysql,显示主库信息

show master status;

 这里写图片描述

这里的 File 、Position 是在配置Salve的时候要使用到的,Binlog_Do_DB表示要同步的数据库,Binlog_Ignore_DB 表示Ignore的数据库,这些都是在配置的时候进行指定的。

 

Slave的配置

修改从库的my.ini

log-bin=mysql-bin
server-id=3
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
replicate-do-db=shoppingdb
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60

 

重启从库的mysql服务

 

重新登录从库

 

 

STOP SLAVE;

CHANGE MASTER TO MASTER_HOST='127.0.0.1',
MASTER_USER='root',MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=120;

START SLAVE;

 

在这里指定Master的信息,master_log_file是在配置Master的时候的File选项, master_log_pos是在配置Master的Position 选项,这里要进行对应。

 

然后可以通过mysql> show slave status; 查看配置的信息:

 

show slave status;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.167.1.1
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
          Read_Master_Log_Pos: 28125
               Relay_Log_File: VM_128_194_centos-relay-bin.000004
                Relay_Log_Pos: 26111
        Relay_Master_Log_File: mysql-bin.000004
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: ufind_db
          Replicate_Ignore_DB: mysql
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 28125
              Relay_Log_Space: 26296
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 2
                  Master_UUID: 8ac3066a-9680-11e5-a2ec-5254007529fd
             Master_Info_File: /data/mysqldb/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
1 row in set (0.00 sec)

ERROR: 
No query specified

 

注意,如果看到上述信息,表示成功.

请特别注意Slave_IO_Running和Slave_SQL_Running的值一定要是Yes.

 

真正的测试

在主库分别执行创建数据表\新增数据\修改数据\删除数据\删除数据表等一系列的操作,每次执行一项去从库中执行查看,看从库是否做到的同步.

 

 

分享到:
评论

相关推荐

    使用Spring实现读写分离(MySQL实现主从复制)

    ## 使用Spring实现读写分离(MySQL实现主从复制) ### 概述 随着业务量的增长和技术的发展,单一数据库往往无法满足日益增长的数据处理需求。对于读多写少的应用场景,采用数据库集群的方式进行读写分离是一种常见...

    MySQL 实现主从复制1

    【MySQL 实现主从复制】 随着业务数据的增长,应用程序的响应速度可能会逐渐变慢,尤其当检测到大多数请求为查询操作时,这是由于单一数据库处理请求的压力过大。为了解决这个问题,可以采用数据库主从复制的方式,...

    SpringBoot第 12 讲:SpringBoot+MySQL主从复制、读写分离

    在本讲中,我们将深入探讨如何使用SpringBoot与MySQL实现主从复制以及读写分离的架构设计。这一技术方案在大型分布式系统中尤为常见,它能够有效地提高数据库系统的可用性和性能。 首先,让我们理解主从复制的核心...

    MySQL高级 主从复制——个人总结

    总结来说,MySQL主从复制技术可以实现数据的实时备份和读写分离,降低master的读取压力,同时提高数据库的可用性和扩展性。然而,配置和维护MySQL主从复制需要对MySQL的内部机制和复制原理有充分理解,才能保证数据...

    使用keepalived实现对mysql主从复制的主备自动切换.docx

    "使用keepalived实现对mysql主从复制的主备自动切换" 本文主要讲解如何使用keepalived实现对mysql主从复制的主备自动切换。keepalived是一款高可用性解决方案,可以实现虚拟IP的管理和服务监控,在mysql主从复制...

    如何实现MySQL的主从复制和半同步复制

    MySQL的主从复制和半同步复制是数据库集群中常见的高可用性和数据冗余策略,能够保证数据的一致性并提供故障恢复能力。本文将详细解释这两种复制方式的原理、配置步骤以及优缺点。 **一、MySQL主从复制** MySQL...

    MySQL 5.7主从复制

    MySQL 5.7主从复制是数据库高可用性和负载均衡的一种常见实现方式,它通过将主数据库(Master)上的写操作同步到一个或多个从数据库(Slave)来实现数据的冗余备份和读写分离。在Java开发中,MySQL主从复制常常用于...

    详解MySQL实现主从复制过程

    MySQL的主从复制是一种分布式数据库策略,用于保持多个数据库服务器之间的数据一致性。它通过将主数据库的DDL(数据定义语言)和DML(数据操纵语言)操作记录在二进制日志(BINLOG)中,然后将这些日志传输到从...

    MYSQL数据库主从复制高可用技术改造环境部署方案

    ### MySQL数据库主从复制高可用技术改造环境部署方案 #### 安装部署DRBD DRBD(Distributed Replicated Block Device)是一种分布式复制块设备,主要用于实现数据在两台或多台服务器之间的实时同步,以此来构建高...

    MySQL 主从复制模式全面实践

    MySQL主从复制模式是数据库领域内一种重要的数据同步机制,它能够让一台主数据库服务器(master)的数据实时复制到一个或多个从数据库服务器(slave)上。这种机制在数据库的高可用性、数据备份、读写分离以及负载...

    MySQL5.7主从复制(Win10)及mybatis相关配置

    MySQL5.7主从复制是数据库高可用性和数据冗余的一种常见实现方式,特别是在Windows操作系统环境下,这种配置有助于确保服务的连续性和数据的一致性。本文将深入探讨MySQL5.7在Windows 10上的主从复制配置以及与...

    MySQL数据库主从复制的实现.pdf

    MySQL数据库主从复制的实现 MySQL数据库主从复制是指在生产环境中,当主数据库出现故障时,备用机器能够实时接管,这就需要两台数据库的数据要实时保持一致。MySQL提供单向异步同步功能,同步机制是基于master主...

    MySQL主从复制与读写分离.docx

    MySQL 主从复制是指将一个 MySQL 服务器的数据实时同步到另一个 MySQL 服务器中,以实现数据的高可用性和读写分离。下面是 MySQL 主从复制与读写分离的详细知识点: MySQL 主从复制 MySQL 主从复制是指将一个 ...

    mysql实现主从复制/主从同步

    MySQL的主从复制是一种数据库高可用性和数据冗余的重要技术,它允许一台服务器(主服务器)的数据自动同步到另一台或多台服务器(从服务器)。这种技术对于提升系统性能、实现数据备份和保证业务连续性至关重要。 ...

    MySQL主从复制搭建从入门到掌握

    为了实现主从复制,主服务器必须开启二进制日志。 - **配置示例**: ```ini # 在my.cnf或my.ini配置文件中加入以下内容 [mysqld] log-bin=mysql-bin binlog_format=mixed ``` - `log-bin`参数用于指定二进制...

Global site tag (gtag.js) - Google Analytics