数据库

MySQL配置主从同步

2019-02-15  本文已影响114人  小螺钉12138

一、数据库主从复制的基本思想

mysql主从复制是指将mysql主服务器中的数据复制到一台或者多台mysql从服务器的过程,将主数据库中的DDL和DML操作通过二进制日志传到复制的服务器上,然后在从服务器上对这些日志重新执行,从而使主从服务器的数据保持同步

在mysql中,复制操作是异步进行的,slaves服务器不需要持续地保持连接接收master服务器的数据

mysql支持一台主服务器同时向多台从服务器进行复制操作,从服务器同时可以作为其他从服务器的主服务器,如果mysql主服务器的访问量比较大,可以通过复制数据,然后在从服务器上进行查询操作,从而降低主服务器的访问压力,同时从服务器作为主服务器的备份,可以避免主服务器因为故障数据丢失的问题

mysql数据库复制操作大致可以分为三个步骤

二、数据主从复制的操作

2.1修改主服务器配置
[mysqld]
log-bin=mysql-bin
server-id=1

// 配置从服务器的账号,以及复制权限
mysql> CREATE USER 'replication'@'192.168.252.124' IDENTIFIED BY 'mima';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.252.124';
2.2修改从服务配置
[mysqld]
server-id=2
//如果设置多个从库,就需要设置不同的server-id
mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.252.123', -- 主库的ip地址
    -> MASTER_USER='replication', --主库的用户名
    -> MASTER_PASSWORD='mima', -- 主库的密码
    -> MASTER_LOG_FILE='mysql-bin.000001', --主库的binary log文件名
    -> MASTER_LOG_POS=629; -- 复制binary log文件的开始地址
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)
mysql>  show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event #从服务器的当前状态 
                  Master_Host: 192.168.252.123
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 629
               Relay_Log_File: master2-relay-bin.000003
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
             #读取主程序二进制日志的I/O线程是否正在运行 
            Slave_SQL_Running: Yes
            #执行读取主服务器中二进制日志事件的SQL线程是否正在运行。与I/O线程一样 
            .
            .
            .
            Seconds_Behind_Master:0
            #为0表示已经开始同步

三、测试

通过查询从服务器的状态得知,主从复制配置成功,现在可以在主从创建一张新表,在表中插入一条语句,然后在从库中查看是否有新创建的表以及插入的语句(不可以在配置主从配置前就存在的表中插入语句,会造成主从同步失败)

上一篇下一篇

猜你喜欢

热点阅读