mysql的主从复制

本节我们要讲的是mysql的主从复制,之所以要进行主从复制,主要是可以进行读写分离,减轻mysql服务器的压力。那么下面我们就来看看如何实现主从复制。

 

复制的功用:

        负载均衡

        数据分布

        备份

        高可用性

        mysql升级测试

缺点:

         单点

         写操作无法均衡

mysql复制的工作原理:

     将主节点的的二进制日志放到从节点上重新执行一遍

复制的三个步骤:

     1、在主库上启用二进制日志

     2、备库冲主库复制二进制日志,并保存至本地的中继日志中;

     3、 备库从中继日志中读取事件并于本地执行一次。

主从复制框架

 

master:172.16.6.1

slave:172.16.6.2

注意:slave版本必须与master相同,或者更高,因为从节点必须兼容主节点。如果在一个已存在数据的主服务器上部署备服务器,要先备份主服务器的数据,备份的时候做好二进制日志位置记录 ,然后恢复到从服务器上,并指定从服务器的从主服务器二进制日志的复制位置,从时间点开始复制。

 

master端

配置文件中加入以下项:

[mysqld]

log-bin=/var/log/master-bin                          定义二进制日志  
binlog_format=mixd                                     格式    
sync_binlog=1                                             同步二进制日志    
server-id=10                                                主从节点必须不一致

启动mysql并创建用户

mysql>GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO ‘repl@‘172.16.6.%‘ IDENTIFIED BY ‘123456‘;

mysql> FLUSH PRIVILEGES;

查看二进制

mysql> show master status;                

   +-------------------+----------+--------------+------------------+    
   | File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |    
   +-------------------+----------+--------------+------------------+    
   | master-bin.000001 |      486 |              |                  |    
   +-------------------+----------+--------------+------------------+    
   1 row in set (0.02 sec)

slave端

配置文件中加入以下项:

[mysqld]

# log-bin=/mydata/bin-log/master-bin  # 从节点中禁用二进制日志

# binlog_format=mixed

relay-log=/var/log/relay-bin #启用中继日志

sync_binlog = 1

server-id = 20

read_only = 1

连接主服务器:

mysql> CHANGE MASTER TO MASTER_HOST=‘172.16.6.1‘,MASTER_USER=‘repl‘,MASTER_PASSWORD=‘123456‘,MASTER_LOG_FILE=‘master-bin.00001‘,MASTER_LOG_POS=486;

mysql> START SLAVE;

 

启动线程IO_THREAD和SQL_THREAD:

  mysql> start slave IO_THREAD;    
    Query OK, 0 rows affected (0.00 sec)    
   mysql> start slave SQL_THREAD;    
    Query OK, 0 rows affected (0.00 sec)    
   mysql> show slave status\G

好了下面就可以进行测试了。

master

在主节点中创建数据库

 mysql> create database mwj;    
    Query OK, 1 row affected (0.00 sec)    
    mysql> show databases;    
    +--------------------+    
    | Database           |    
    +--------------------+    
    | information_schema |    
    | mysql              |    
    | mwj                |    
    | performance_schema |    
    | test               |    
    +--------------------+    
    5 rows in set (0.03 sec)

 

slave

在从节点中查看是否同步

 mysql> show databases;    
   +--------------------+    
   | Database           |    
   +--------------------+    
   | information_schema |    
   | mysql              |    
   | mwj                |    
   | performance_schema |    
   | test               |    
   +--------------------+    
   5 rows in set (0.02sec)

 

OK,复制成功,那么本节的实验就到这里,谢谢!

本文出自 “linux菜鸟的IT之路丶” 博客,请务必保留此出处http://wiggin.blog.51cto.com/8733640/1557158

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。