两个数据库的IP地址:
Master IP:192.168.0.100
Slaves IP:192.168.0.101
1. Master数据库在my.ini(linux my.cnf)中添加的配置
server-id = 1
log-bin=mysql-bin #开启主服务器二进制日志记录
binlog-do-db=YNedut #需要同步的数据库名,可写多行
binlog-ignore-db=mysql #不需要同步的数据库名,可写多行
max_allowed_packet = 32M #两台服务器同步时允许传递的包大小
2. Master上运行下面的命令
grant replication slave on *.* to 'admins'@'192.168.0.101' identified by '123’;
备注:在master中为slaves授权
A. 账号:admins
B. 密码:123
C. 授权的ip地址为:192.168.0.101
3. 查看master数据库的状态
Mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position| Binlog_Do_DB|Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| MySQL-bin.000001 | 107 | | |
+------------------+----------+--------------+------------------------+--------------------------------+
4. Master遇到问题的解决方案
reset master; //重置 master;
flush logs;//重置过后 show master status;中的MySQL-bin.000001
//的序号加1= MySQL-bin.000002。
5. Slaves数据库在my.ini(linux my.cnf)中添加的配置
server-id=2 #必须跟master不一样
max_allowed_packet = 32M #两台服务器同步时允许传递的包大小
6. Slaves上运行下面的命令
change master to master_host='192.168.100',master_user='admins',master_password='123',
MASTER_LOG_FILE='MySQL-bin.000001',MASTER_LOG_POS=107;
备注:MASTER_LOG_FILE='MySQL-bin.000001',MASTER_LOG_POS=107;为show master status;查询
出来的状态值。
7. Slaves上运行下面的命令启动数据同步
Mysql> slave start;
8. Slaves上遇到问题的解决方案
A. slave stop;
B. reset slave; //解决server_errno=1236;
C. Mysql> show slave status;//查看主从复制的状态
备注:如果看到error表示没有同步成功,查看MYSQL日志找到错误原因
存放mysql数据文件的地址下的计算机名.err。/usr/local/mysql/var/localhost.localdomain.err
9. Master与Slaves的测试
A. Master 和Slaves的表结构必须保持一致。
B. 在Master和Slaves中分别创建一张test表
CREATE TABLE `syn` (
`id` int(11) NOT NULL,
`value` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
C. 在master中插入一条数据
INSERT INTO `syn` VALUES ('1', 'test');
备注:如果Salves中有刚才在master中插入的数据则同步成功;否则同步失败!
2、 Mysql proxy 安装
2.1. Linux下所依赖的包
A. GC++
B. Glib
C. LUA5.1
D. Libevent
2.2. MySQL Proxy 安装
[root@localhost ~]#tar -zxvf mysql-proxy-0.6.1-linux-rhel4-x86-32bit.tar.gz -C /usr/local/mysql/
[root@localhost ~]#cd /usr/local/mysql
[root@localhost mysql]#mv mysql-proxy-0.6.1-linux-rhel4-x86-32bit/ mysql-proxy
[root@localhost sbin]# export PATH=$PATH:/usr/local/mysql/mysql-proxy/sbin/
3. 使用MySQL Proxy
3.1、查看帮助选项
[root@localhost ~]# mysql-proxy --help-all
3.2、对MySQL 操作
MySQL服务器假设已经安装。(安装步骤这里就不写了)
两台机器上的表初始结构和数据都是一样的,而且都有admins这个用户(密码必须一致)。
启 动 MySQL-Proxy ( 测 试 读 写 分 离 )
[root@localhost]# mysql-proxy
--proxy-read-only-backend-addresses=192.168.0.101:3306 --proxy-backend-addresses=192.168.0.100:3306 --proxy-lua-script=/usr/local/mysql/mysql-proxy/share/mysql-proxy/rw-splitting.lua
备注:192.168.0.101:3306 提供只读服务
192.168.0.100:3306 提供写服务
3.3、Mysql-proxy 的默认端口为4040
3.4、数据测试为用mysql client 连接 mysql-proxy进行数据操作
- 浏览: 12847 次
- 性别:
- 来自: 成都
最新评论
-
feitianhama:
赶紧写下文啊。期待中.......
工作在民营企业5年的日子里
相关推荐
【MySQL 数据库读写分离与负载均衡】 MySQL 数据库的读写分离是一种常见的优化策略,旨在提高系统的可扩展性和性能。在大型应用中,数据库往往成为性能瓶颈,尤其是在高并发的场景下,读写操作混杂可能导致服务器...
为了解决这个问题,MySQL提供了一个名为`mysql-proxy`的工具,这正是"MYSQL数据库读写分离mysql-proxy 32bit包"的主题。MySQL Proxy是一个轻量级的代理服务器,它可以坐在MySQL服务器和客户端应用程序之间,动态地...
本示例通过Java的面向切面编程(AOP)技术来实现实现MySQL数据库的读写分离,旨在帮助开发者理解如何在实际项目中应用这一技术。 首先,我们要理解什么是AOP(Aspect-Oriented Programming)。AOP是面向切面编程的...
LNH_MySQL 05-mysql数据库读写分离介绍及企业生产实现方案.mp4
在构建大型分布式系统时,数据库读写分离是一个重要的优化策略,它可以提高系统的可扩展性和性能。本项目结合了Spring、SpringMVC、MyBatis和Maven等技术,与MySQL数据库一起实现读写分离,以提升应用的处理能力。...
本项目着重于实现数据库的读写分离,以提高系统的性能和可用性。下面我们将详细探讨这个项目中的关键知识点。 1. **Spring框架**:Spring作为核心的依赖注入(DI)和面向切面编程(AOP)框架,提供了一种管理对象...
读写分离就是对于一条SQL该选择哪一个数据库去执行,至于谁来做选择数据库这件事,有两个,要么使用中间件帮我们做,要么程序自己做。一般来说,读写分离有两种实现方式。第一种是依靠中间件MyCat,也就是说应用程序...
Spring框架提供了对MySQL数据库读写分离的良好支持,使得开发者能够轻松地在应用中实现这一功能。 **1. 什么是读写分离** 读写分离是指在数据库系统中,将读操作和写操作分配到不同的服务器上执行,读操作通常发生...
数据库读写分离是一种常见的优化策略,特别是在高并发、大数据量的场景下,为了提升系统性能和可用性。在这个"数据库读写分离demo.rar"中,我们可以看到一个基于SQL Server 2016、ASP.NET Core 2.1和Entity ...
数据库读写分离是一种常见的数据库架构优化策略,主要是为了应对数据量大、读写操作频繁导致的性能瓶颈。在读写分离架构中,主库负责处理所有的写操作,而从库则处理读操作。主库与从库之间的数据同步通常通过主库的...
本文将深入剖析在ThinkPHP框架下实现MySQL数据库读写分离的代码逻辑。 首先,理解读写分离的基本概念:读写分离是将数据库的读操作和写操作分配到不同的数据库服务器上,通常主数据库处理写操作,而从数据库处理读...
MySQL 读写分离是指在数据库集群架构中,让主库负责处理事务性查询,而从库只负责处理 select 查询,达到提高数据库整体读写性能的目的。主数据库另外一个功能就是负责将事务性查询导致的数据变更同步到从库中。读写...
springboot结合mysql主从来实现读写分离 一、实现的功能 1、基于springboot框架,application.yml配置多个数据源,使用AOP以及AbstractRootingDataSource、ThreadLocal来实现多数据源切换,以实现读写分离。mysql...
springboot数据库读写分离,代码实现一主两从的读写分离,业务代码不影响,正常写就可以。可以根据自己需要修改
在Java开发领域,数据库读写分离是一种常见的优化策略,它能显著提高系统性能,尤其是在高并发环境下。本项目源码是基于MySQL数据库实现的,利用SSM(Spring、SpringMVC、MyBatis)框架进行开发,旨在帮助开发者快速...
数据库是mysql,采用druid连接池。 读写分离采用插件的形式实现的,优点是不需要写源注解,不需要写分开的Mapper.xml。 如果只有主库的话,那么会创建两个地址相同的连接池,写主库,读从库。 注意:没有使用Spring...
springboot+mybatis+mysql实现读写分离 先在建好mysql主从数据库的配置,然后在代码中根据读写分离或强制读取master数据库中的...mysql数据库设置主从,参考: https://my.oschina.net/zhangmaoyuan/blog/3120556