mysql读写分离

ProxySQL读写分离代理

扶醉桌前 提交于 2019-12-05 18:03:04
实现ProxySQL反向代理Mysql读写分离 简介 ProxySQL相当于小型的数据库,在磁盘上有存放数据库的目录;ProxySQL用法和mysql相似 启动ProxySQL后会有两个监听端口; 6032:ProxySQL的管理端口 6033:ProxySQL对外提供服务的端口 注意:ProxySQL区分主从节点,是通过主从服务器配置文件中的read_only来区分的;哪个服务器配置文件中有read_only,哪台服务器就是从节点,所以从节点必须加read_only选项 ProxySQL下载地址 实现ProxySQL代理最少准备4台机器 https://github.com/sysown/proxysql/releases/tag/v2.0.8 主节点配置: [root@master ~]# vim /etc/my.cnf [mysqld] server-id=17 log-bin [root@master ~]# systemctl restart mariadb [root@master ~]# mysql -e 'grant replication slave on *.* to repluser@"192.168.38.%" identified by "centos";' #授权并且创建用于主从同步的账号 [root@master ~]# mysql -e 'grant

MySQL读写分离

旧时模样 提交于 2019-12-05 17:56:53
Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。 因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部署与实施的。 读写分离应用: mysql-proxy:Oracle,https://downloads.mysql.com/archives/proxy/ Atlas:Qihoo,https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md dbproxy:美团,https://github.com/Meituan-Dianping/DBProxy Cetus:网易乐得,https://github.com/Lede-Inc/cetus Amoeba:https://sourceforge.net/projects/amoeba/ Cobar:阿里巴巴,Amoeba的升级版 Mycat:基于Cobar, http://www.mycat.io/ ProxySQL:https://proxysql.com/ ProxySQL ProxySQL:

windows版的mysql主从复制环境搭建

落爺英雄遲暮 提交于 2019-12-05 13:43:21
背景 最近在学习用Spring Aop来实现数据库读写分离的功能。 在编写代码之前,首先是要部署好mysql的环境,因为要实现读写分离,所以至少需要部署两个mysql实例,一主一从,并且主从实例之间能够自动同步,因为我的本机内存并不高,所以就打算在windows上直接搭建mysql的主从实例(不想开虚拟机),但这个过程中却遇到了一些麻烦,虽然最后都解决了,但也花费了不少的时间。为了避免以后在同样的事情上浪费时间,同时也方便读者们能复制相同的场景,所以就写下这篇博客来记录一下搭建环境的过程。 环境说明 本机地址:127.0.0.1(localhost) mysql版本:mysql-5.7.28-winx64 主库服务名:master,端口3307 从库服务名:slave,端口3308 安装并配置主库master 下载 首先是下载mysql,直接到 官网 下载zip版的安装包,这里建议下载比较新的版本,比如笔者的版本是5.7,这也是网上很多大神的建议, 解压并创建my.ini文件 解压安装包,命名文件夹为master,进入文件夹,创建一个名为my.ini的空文本, 文本中的内容如下: [client] # 端口号,默认是3306,同一个环境下不同的mysql实例端口号不能相同 port=3307 default-character-set=utf8 [mysqld] #主库配置

MySQL学习笔记

こ雲淡風輕ζ 提交于 2019-12-05 11:06:47
MySQL学习笔记 1、数据库服务器 数据库服务器:运行数据库管理软件的计算机 2、数据库管理软件 MySQL、Oracle、db2、sqlserver 3、库 库:文件夹 4、表 表:文件 5、记录 记录:事物一系列典型的特征:zhangsan,male,18,Shanxi 6、数据 数据:描述事物特征的符号; MySQL各种增删改查 各种增删改查语句 分组统计、跨表查询 存储过程、视图、触发器的使用 事务操作 设计合理的表结构 如何构建合理的、可扩展的表结构 真实项目表结构设计实战 数据库的性能优化与安全 如何加快表的查询速度 如何确保数据安全不丢失 数据库集群 & 读写分离 访问权限 MySQL MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于 oracle 旗下公司。MySQL是最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。 mysql是一个基于socket编写的C/S架构的软件 客户端软件 ​ mysql自带:如mysql命令,mysqldump命令等; ​ python模块:如pymysql 数据库管理软件分类 分两大类: ​ 关系型:如sqllite,db2,oracle,access,SQL

MySQL/MariaDB读写分离配置

大城市里の小女人 提交于 2019-12-05 06:17:58
DB读写分离描述 数据库的读写分离其实就是为了加减少数据库的压力;数据库的写入操作由主数据库来进行,读取操作由从数据库来进行操作。 实现数据库读写分离技术是有很多方法的,在这里我就用一个比较简单的mysql-proxy这个中间件来实现数据库的读写分离;使用mysql-proxy实现mysql的读写分离,mysql-proxy实际上是作为后端mysql主从服务器的代理,它直接接受客户端的请求,对SQL语句进行分析,判断出是读操作还是写操作,然后分发至对应的mysql服务器上。 数据库读写分离比较实用的还有Amoeba等相关程序。 基本环境 此环境需要三台主机(可以是虚拟主机) Linux 操作系统 版本: CentOS8.0 软件版本: 数据库: mariadb lua: lua.X86_64 mysql-proxy: mysql-proxy-0.8.5 这里因为需要用三台主机,我电脑配置有点上愁,所以我这里就使用容器(docker)代替三台虚拟主机了 root@uduntu:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8aea2ebdf1a5 centos "/sbin/init" 12 minutes ago Up 11 minutes mysql-proxy 9a24bbeec012

MySQL 中间件 - DBLE 简单使用

∥☆過路亽.° 提交于 2019-12-05 04:48:43
DBLE 是企业级开源分布式中间件,江湖人送外号 “MyCat Plus”;以其简单稳定,持续维护,良好的社区环境和广大的群众基础得到了社区的大力支持; 环境准备 DBLE项目资料 DBLE官方网站:https: //opensource.actionsky.com 可以详细了解DBLE的背景和应用场景,本文不涉及到的细节都可在官方文档获得更细节都信息;对于刚了解到同学,可以以本文为快速入门基础 DBLE官方项目:https: //github.com/actiontech/dble 如对源码有兴趣或者需要定制的功能的可以通过源码编译 DBLE下载地址:https: //github.com/actiontech/dble/releases 建议下载最新的releases版本,下载tar压缩包即可,如有源码编译需求的,可以下载源码包 DBLE社区交流: 669663113 安装JDK环境 DBLE是使用java开发的,所以需要启动dble需要先在机器上安装java版本1.8或以上,并且确保JAVA_HOME参数被正确的设置; 这里通过yum源的方式安装了openjdk,同学们可以自行google jdk的几百种安装方式,这里不在赘述; # yum install java-1.8.0-openjdk 确认java环境已配置完成 # java -version openjdk

mysql 读写分离数据源怎么区分

南笙酒味 提交于 2019-12-05 03:39:45
参考博客: https://blog.csdn.net/bsmmaoshenbo/article/details/60766300 https://blog.csdn.net/baiyan3212/article/details/90901471 AOP中的@Aspect用法,用于监控程序的执行方法 Spring使用的AOP注解分为三个层次: 前提条件是在xml中放开了<aop:aspectj-autoproxy proxy-target-class="true"/><!-- 开启切面编程功能 --> 1、@Aspect放在类头上,把这个类作为一个切面。 2、 @Pointcut放在方法头上,定义一个可被别的方法引用的切入点表达式。 3、5种通知。 3.1、 @Before ,前置通知,放在方法头上。 3.2、@After,后置【finally】通知,放在方法头上。 3.3、@AfterReturning,后置【try】通知,放在方法头上,使用returning来引用方法返回值。 3.4、@AfterThrowing,后置【catch】通知,放在方法头上,使用throwing来引用抛出的异常。 3.5、@Around,环绕通知,放在方法头上,这个方法要决定真实的方法是否执行,而且必须有返回值。 @Component @Aspect public class LogAspect {

linux常用环境的安装

你说的曾经没有我的故事 提交于 2019-12-05 03:05:28
安装linux和安装虚拟机略过,直接进行环境的安装 1,安装JDK java环境变量: 系统变量: /etc/profile 用户环境变量: .bash_profile(当前用户的profile) 将文件上传到root文件夹下 tar -zxvf jdk-8u171-linux-x64.tar.gz(解压) 此次用的是解压包的方式进行配置, 还可以通过rpm(类似于java的.exe文件),还是需要配置,通过搜索安装文件在10中可以看到,在环境变量中配置 yum安装,自动化配置,什么都不用做,只需要执行命令,直接用 mv jdk1.8.0_171/ /usr(移动到usr文件夹下) vim .bash_profile(配置环境变量) source .bash_profile(刷新配置) 1 export JAVA_HOME=/usr/jdk1.8.0_171 2 export PATH=$JAVA_HOME/bin:$PATH 点击查看java环境配置 然后用java或者javac测试一下配置是否成功 查询一下java安装的位置,以方便后期进行卸载软件 1 [root@localhost ~]# find / -name "java" 2 /etc/pki/ca-trust/extracted/java 3 /etc/pki/java 4 /usr/jdk1.8.0_171/bin

MySQL传统主从复制(第一弹)

早过忘川 提交于 2019-12-05 02:42:45
0、引言 MySQL主从复制的原理及搭建,故障分析 一、MySQL 主从同步的架构及原理 原理: 1)Slave连接到master,主从数据一致,开启同步,开始同步数据 2) 用户在主上写入数据,日志储存到binlog,master上IO thread读取主库binlog,然后把信息传递给从库上的IO thread 3)从库上的IO thread再把部分信息存储在master.info(存储连接位置信息)和relay log里(存储binlog信息) 4)从库上的SQL thread监测到relay log有更新,把更新的信息恢复到从库,然后把位置点信息记录下来 二、MySQL 实现主从同步的几种方式及使用价值 1、MySQL主从复制的几种实现方式 l 基于binlog+position的传统复制 l 基于事务的GTID复制 l 多源复制 l Group replication(5.7新特性) l 半同步 2、MySQL主从复制的使用价值 l 利用从库做高可用 l 利用从库做读写分离 l 利用从库做升级 三、MySQL 基于binlog 三种模式下的复制 1、基于statement格式的复制 优点:binlog文件小,节省磁盘IO,只记录执行的SQL,方便阅读统计 缺点:对MySQL特殊函数不能复制,可能会导致主从不一致 2、基于row格式的复制 优点:详细记录每一行的修改信息

你不知道的是

廉价感情. 提交于 2019-12-05 01:49:52
Linux运维跳槽必备的40道面试精华题 1、 什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术 运维又包括很多种,有 DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等 2)游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维 开发运维:是给应用运维开发运维工具和运维平台的 应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查 系统运维:是给应用运维提供业务上的基础设施,比如:系统、网络、监控、硬件等等 总结:开发运维和系统运维给应用运维提供了 “工具”和“基础设施”上的支撑开发运维、应用运维 和系统运维他们的工作是环环相扣的 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的? 游戏运营要做的一个事情除了协调工作以外还需要与各平台沟通,做好开服的时间、开服数、用户导量、活动等计划 3、现在给你三百台服务器,你怎么对他们进行管理? 管理 3百台服务器的方式: 1)设定跳板机,使用统一账号登录,便于安全与登录的考量。 2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。 3)建立简单的服务器的系统、配置