mysql主从复制(一主一从),读写分离


一、数据主从理论

1、主从复制原理

    Mysql主从又叫Replication、AB复制。简单讲就是A与B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,实现数据实时同步。

  

 

 

 2、MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。

   

 

 

3、主从复制的作用及应用

  

  (1)实时灾备,用于故障切换
  (2)读写分离,提供查询服务
  (3)备份,避免影响业务

二、主从复制操作流程

1、服务器初始准备
  主服务器
    开启二进制日志
    配置唯一的server-id
    获得master二进制日志文件名及位置
    创建一个用于slave和master通信的用户账号
  从服务器
    配置唯一的server-id
    使用master分配的用户账号读取master二进制日志
    启用slave服务

  准备工作:

    1.主从数据库版本最好一致(mysql5.5)
    2.主从数据库内数据保持一致(mysql5.5)
    主数据库:192.168.138.150
    从数据库:192.168.138.151

2、修改Mysql配置,开启bin.log

  找到主数据库的配置文件my.cnf(或者my.ini)

    

 

  修改完成之后,重启数据库

3、重启mysql,创建用于同步的用户账号并赋予权限

 

  mysql> create user jumpwslaver@192.168.138.151 IDENTIFIED BY 'jumpwbx';

  

  赋予权限

  

 

 

   检查从库账户jumpwbxslaver的权限

  mysql> show grants for jumpwbxslaver@192.168.138.151;

  

3、查看master状态,记录二进制文件名(mysql-bin.000008)和位置(1993)

  mysql> show master status ;

  

 

 

至此,主库配置完成。

三、主从复制从库配置流程

  1、同样的是修改数据库的/etc/my.conf文件,需要注意的是sever-id 必须区别于主数据库的server-id

  2、重启mysql,打开mysql会话,执行同步SQL语句(需要主服务器主机名,登陆凭据,二进制文件的名称和位置)

  mysql> CHANGE MASTER TO MASTER_HOST='192.168.138.150',
  -> MASTER_USER='jumpwbx',
  -> MASTER_PASSWORD='jumpwbx',
  -> MASTER_LOG_FILE='mysql-bin.000008',
  -> MASTER_LOG_POS=1993;

 

  

 

 

3、启动主从同步

 

  mysql> start slave;

 

  

 

4、查看slave状态

  mysql> SHOW SLAVE STATUS\G;

  

 

  当Slave_IO_Running和Slave_SQL_Running都为YES的时候就表示主从同步设置成功。接下来,可以在主库做些增删查找的操作,看一下是否同步到从库。

 

 


 

 四、主从同步实验

  主库数据库状态

  

  从库数据库状态

  

  操作:删除lee这个自定义的数据库

  

  

  从库已经和主库同步。

 

 

 

 


 

扩展操作

  可以在配置中进行定义,哪些库是同步的,哪些是不同步的。

  #不同步哪些数据库
  binlog-ignore-db = mysql
  binlog-ignore-db = test
  binlog-ignore-db = information_schema 


清除主从关系

https://www.cnblogs.com/musen/p/11162783.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM