`

mysql 主从 读写分离

阅读更多

说明:

1.主从是 数据同步  ,主库数据 同步到 从库(配置mysql 实现)

2. 读写分离 是 代理去 根据 crud 如果是 增删改 操作 主库,查询就 操作从库(mysql 有插件实现,或者用中间件 mycat等)

3. mysql 配置 主从  需要  主从库 mysql 版本一致,从库版本 可以比主库 版本高  ,不可以低

实现 主从配置:

一 、配置主库

(1)配置Master主服务器

在Master MySQL上创建一个用户‘repl’,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步(命令方式,也可以通过可视化工具 如 Navicat 实现 用户操作)

1 mysql>create user repl; //创建新用户
2 //repl用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为mysql。说明一下192.168.0.%,这个配置是指明repl用户所在服务器,这里%是通配符,表示192.168.0.0-192.168.0.255的Server都可以以repl用户登陆主服务器。当然你也可以指定固定Ip。
3 mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.%' IDENTIFIED BY 'mysql';

 (2)找到MySQL安装文件夹修改my.Ini文件。mysql中有好几种日志方式,这不是今天的重点。我们只要启动二进制日志log-bin就ok。

 在[mysqld]下面增加下面几行代码

server-id=79
log-bin=mysql-bin
binlog_format=mixed
log-bin-index=master-bin.index
binlog-do-db=db212


 

 (3)查询主数据库状态

Mysql> show master status;

+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000005 | 261 | | |
+------------------+----------+--------------+------------------+

记录下 FILE 及 Position 的值,在后面进行从服务器操作的时候需要用到。

二、配置从库

   (1)配置从服务器

找到MySQL安装文件夹修改my.ini文件,在[mysqld]下面增加下面几行代码

 server-id=2

 log-bin=mysql-bin

 binlog_format=mixed 

 relay-log-index=slave-relay-bin.index

 relay-log=slave-relay-bin

 重启MySQL服务

(2)连接Master

     命令可以再 可视化工具里执行

change master to master_host='192.168.0.104', //Master 服务器Ip
master_port=3306,
master_user='repl',
master_password='mysql', 
master_log_file=' mysql-bin.000005',//Master服务器产生的日志
master_log_pos=261 ;

 

 

(3)启动Slave

       start slave;

另:

     stop slave; //停止从库的 主从服务

      mysql> show slave status;   //主从同步检查

==============================================
**************** 1. row *******************
Slave_IO_State:
Master_Host: 192.168.10.130
Master_User: rep1
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000005
Read_Master_Log_Pos: 415
Relay_Log_File: localhost-relay-bin.000008
Relay_Log_Pos: 561
Relay_Master_Log_File: mysql-bin.000005
Slave_IO_Running: YES
Slave_SQL_Running: YES
Replicate_Do_DB:
……………省略若干……………
Master_Server_Id: 1
1 row in set (0.01 sec)
==============================================

其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。

如果主服务器已经存在应用数据,则在进行主从复制时,需要做以下处理:
(1)主数据库进行锁表操作,不让数据再进行写入动作
mysql> FLUSH TABLES WITH READ LOCK;

(2)查看主数据库状态
mysql> show master status;

(3)记录下 FILE 及 Position 的值
将主服务器的数据文件(整个/opt/mysql/data目录)复制到从服务器,建议通过tar归档压缩后再传到从服务器解压。

(4)取消主数据库锁定
mysql> UNLOCK TABLES;

 

OK所有配置都完成了,这时候大家可以在Master Mysql 中进行测试了,因为我们监视的时Master mysql  所有操作日志,所以,你的任何改变主服务器数据库的操作,都会同步到从服务器上。创建个数据库,表试试吧。

 

 

参考地址:

http://www.cnblogs.com/alvin_xp/p/4162249.html

http://blog.csdn.net/ccrrt/article/details/8514842

 

 

 

 

 

MYSQL主从同步故障

 

 

 Error 'Duplicate entry '3776' for key 'PRIMARY'' ON query.

  DEFAULT DATABASE: 'dcloud-serve'. QUERY: 

  'insert into ts_service_db(db_type,db_ip,db_port,db_instance,db_user,db_password,data_type,remark,service_code)

   values(1,'192.168.0.52',6379,'','','',0,'msg_Redis','201605040932099988'),

   (1,'192.168.0.52',6379,'','','',0,'realData_Redis','201605040932099988'),

   (1,'192.168.0.52',6379,'','','',1,'alarm_Redis','201605040932099988'),

   (0,'192.168.0.104',3306,'dcloud-device','root','root',0,'device_MySQL','201605040932099988')'

 

进入从库查看一下

  show global variables like 'binlog_format';

      显示 当前的格式为statement

  需要把格式改为 mixed格式

  修改从库的 my.cfg

  在[mysqld]下面加入下面这行

        log-bin=mysql-bin

  binlog_format=mixed

 

     重启mysql服务

另:

 

     强制跳过 1062错误 配置,修改从库的/etc/my.cnf文件

  在里面的[mysqld]下面加入了一行

  slave-skip-errors = 1062 (忽略所有的1062错误)

   

 

 

分享到:
评论

相关推荐

    基于Mycat的MySQL主从读写分离配置详解与示例

    ### 基于Mycat的MySQL主从读写分离配置详解与示例 #### 一、概述 在高并发的互联网应用场景下,单一数据库往往难以承受大量的读写请求,因此,采用主从架构实现读写分离是提高系统稳定性和响应速度的有效方法之一...

    第三版_基于Mycat的MySQL主从读写分离配置详解与示例

    本篇文章将深入探讨如何基于Mycat进行MySQL主从读写分离的配置,并提供相关示例。 一、Mycat简介 Mycat是一款由中国人自主研发的开源数据库中间件,它支持分布式事务、分库分表、读写分离等功能。Mycat的核心设计...

    Amoeba搞定mysql主从读写分离

    MySQL的主从读写分离是数据库架构中一种常见的优化策略,它通过将读操作分散到多个从库上...通过阅读《Amoeba搞定mysql主从读写分离@www.java1234.com.pdf》这份文档,可以深入学习和掌握Amoeba的使用方法和最佳实践。

    Mycat实现mysql主从读写分离的配置文件

    这是Mycat实现mysql主从读写分离时用到的的配置文件。 内容包括:schema.xml和server.xml。 请根据实际情况替换里面的数据库地址、用户、密码。 相关操作教程:...

    springboot+mybatis+mysql实现读写分离.zip

    springboot+mybatis+mysql实现读写...先在建好mysql主从数据库的配置,然后在代码中根据读写分离或强制读取master数据库中的数据 mysql数据库设置主从,参考: https://my.oschina.net/zhangmaoyuan/blog/3120556

    Mysql主从读写分离详细配置

    在实际应用过程中,对mysql主从表及读写分类的记录文档,留作备份

    MySQL主从复制 读写分离

    根据提供的文件信息,我们可以总结出以下关于MySQL主从复制与读写分离的相关知识点: ### MySQL主从复制原理 MySQL主从复制是一种数据同步机制,它允许将一个MySQL服务器(主服务器)上的数据自动复制到一个或多个...

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

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

    MySQL主从同步与读写分离配置图文详解

    ### MySQL主从同步与读写分离配置详解 #### 一、实验目的 在现代的生产环境中,单一的MySQL服务器往往无法满足对数据处理的安全性、高可用性和高并发的需求。因此,采用**主从同步(Master-Slave Replication)**...

    MySQL主从复制与读写分离

    MySQL主从复制与读写分离是数据库架构中的重要策略,旨在提高系统的可用性、扩展性和数据安全性。在大型系统中,随着数据量的增长和访问压力的增加,单一数据库服务器往往无法满足性能需求。主从复制和读写分离是...

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

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

    基于数据库中间件Mycat的MySQL主从与读写分离配置详解与示例

    本文将深入探讨基于Mycat的MySQL主从配置与读写分离的详细步骤,并结合【心跳问题heartbeat bug #393】和【bug407:修复主从状态监控和读写分离】的修复进行讲解。 首先,理解Mycat的工作原理至关重要。Mycat作为...

    mysql 主从复制读写分离实现

    mysql 主从复制读写分离实现

    MySQL主从复制读写分离 .pdf

    MySQL的主从配置,读写分离,详细完整教程,pdf文档思维导图

    Mysql主从复制及读写分离

    一、Mysql5.7的版本优势; 二、数据库集群的概述; 三、Mysql数据库的主从复制; 四、Mysql数据库的读写分离; 五、案例:搭建Mysql数据库集群(主从复制--二进制日志文件...七、案例:实现Mysql主从复制+读写分离;

Global site tag (gtag.js) - Google Analytics