mysql集群

nodejs链接mysql集群

三世轮回 提交于 2019-11-30 07:58:48
const mysql = require('mysql2'); const config = require('../config/config'); module.exports = async (sql, options) => { const poolCluster = mysql.createPoolCluster({ removeNodeErrorCount: 1, // Remove the node immediately when connection fails. defaultSelector: 'RR' //RR,RANDOM,ORDER }); poolCluster.add('node1', config.mysql.node1); poolCluster.add('node2', config.mysql.node2); poolCluster.add('node3', config.mysql.node3); poolCluster.add('node4', config.mysql.node4); return new Promise((resolve, reject) => { poolCluster.getConnection((err, conn) => { if (err) { reject(err) } else { conn.query

125 Mysql数据库基础

 ̄綄美尐妖づ 提交于 2019-11-30 06:32:49
一、认识数据库 1.1 数据库介绍 数据库服务端:存放数据库的主机集群 数据库客户端:可以连接数据库的任意客户端 数据库管理员:DBA 1.2 什么是数据库 数据库从字面意思上来看,就可以简单的理解为是存放数据的一个库 数据库可以在硬盘及内存中存储数据 那我们知道文件也是用来存放数据信息的,那就有了 数据库存储数据和文件存储数据的区别: 数据库就是用来存储数据信息的一个仓库 数据库的本质其实也就是通过文件来存储数据 数据库的概念就是系统的管理存储数据的那些个文件 总结: 1. 数据库就是用来管理数据的系统-安装某种管理数据的系统 2.数据库管理的对象本质上就是文件 2.3数据库的组成 库:包含多张表--->这个表就是文件 表:包含多条相同结构的记录----表就是文件 记录:包含多个key:values键值对的一条数据---是二进制数据 字段:描述信息----信息本身 {key:values}----二进制数据 database:库----它是用来管理stu表 stu:表---文件 id name age gender ------字段 1 Bob 18 男 -------记录1 2 Tom 17 女 -------记录2 二、数据库的分类 2.1 关系型数据库和非关系型数据库 关系型数据库 :数据库中的表与表之间有关系,比如mysql 非关系数据库 :没有表的概念----redis

Mysql 数据库的同步(master slave) 详解

风流意气都作罢 提交于 2019-11-30 05:56:00
####原理######## mysql 的数据同步,在 mysql 官方网站文档上,叫 replication 字面是重作的意思,意译就是同步了。 mysql 为了实现 replication 必须打开 bin-log 项,也是打开二进制的 mysql 日志记录选项。 mysql 的 bin log 二进制日志,可以记录所有影响到数据库表中存储记录内容的 sql 操作,如 insert / update / delete 操作,而不记录 select 这样的操作。因此,我们可以通过二进制日志把某一时间段内丢失的数据可以恢复到数据库中,( 如果二进制日志中记录的日志项,包涵数据库表中所有数据,那么,就可以恢复本地数据库的全部数据了 ) 而这个二进制日志,如果用作远程数据库恢复,那就是 replication 了。 这就是使用 replication 而不用 sync 的原因。 这也是为什么要设置 bin-log = 这个选项的原因。 在同步过程中,最重要的同步参照物,就是同步使用那一个二进制日志文件,从那一条记录开始同步。 下面的官方文档,说明如何安装与设置 mysql 同步操作,当然,英文版 http://dev.mysql.com/doc/mysql/en/Replication_HOWTO.html 以下是中文翻译:  1. 首先,你应该有两个或两个以上的 mysql

mycat理解

北慕城南 提交于 2019-11-30 04:33:16
1、为什么叫mycat?   其实mycat在最早的初期版本只支持mysql一种数据库,换句话说, mycat就是mysql的增强版,在mysql中只是数据库,并没有读写分离和 分库分表,这些操作全部是由mycat进行实现。 注意:主从复制(数据同步)功能mycat没有,必须要使用mysql所提供的。 2、什么是mycat?   2.1 mycat是完全开源的,并且面向大型企业的大数据库集群   2.2 支持事务、ACID、可以替代mysql的嘉庆版数据库,目前已经支持了     很多数据库(关系型和非关系型数据库都包括) 3、什么是HDFS?   H:Hadoop   D:Distributed   F:File   S:System   Hadoop(大数据)分布式存储系统;大数据:数据量非常大,且以文件形式保存    HDFS只做数据的存储;   mycat:   H:High(Big Data)   D:Distributed   D:Data   S;System 4、mycat的两大核心   4.1 分库分表     将同一个系统(项目)的同一张表拆分到不同服务器进行存放   4.2 读写分离     将同一个系统(项目)的读操作和写操作分别在不同服务器上完成    来源: https://www.cnblogs.com/liuqijia/p/11560307.html

MySQL inodb cluster部署

时间秒杀一切 提交于 2019-11-30 04:23:19
innodb cluster是基于组复制来实现的。 搭建一套MySQL的高可用集群innodb。 实验环境: IP 主机名 系统 软件 192.168.91.46 master RHEL7.4 mysqlshell8.0.17,mysqlrouter8.0.17,mysql8.0.17 192.168.91.35 node1 RHEL7.4 mysql8.0.17 192.168.91.36 node2 RHEL7.4 mysql8.0.17 组复制的部署: master: server_id = 100 #服务ID gtid_mode = ON #全局事务 enforce_gtid_consistency = ON #强制GTID的一致性 log-slave-updates=on master_info_repository = TABLE #将master.info元数据保存在系统表中 relay_log_info_repository = TABLE #将relay.info元数据保存在系统表中 binlog_checksum = NONE #禁用二进制日志事件校验 log_slave_updates = ON #级联复制 log_bin = binlog #开启二进制日志记录 binlog_format= ROW #以行的格式记录 transaction_write_set

Mysql - 高可用方案之MHA

风流意气都作罢 提交于 2019-11-30 03:20:25
一、概述 本文将介绍mysql的MHA(Master High Availability)方案,官方文档地址: https://github.com/yoshinorim/mha4mysql-manager/wiki/Installation MHA架构由三台mysql服务器(一主两从)和一台manager节点组成,当主库发生故障时,manager能自动从众多从库中选择一台slave log最新的从库转变成主库,然后将其它所有节点重新指向新的主库。将丢失数据的概率降至最低。 写库故障发生前: 写库故障发生后: 二、节点介绍 本次实验采用4台虚拟机,操作系统版本Centos6.10,mysql版本5.7.25 manager 10.40.16.60 管理 管理集群 node1 10.40.16.61 主库 提供写服务 node2 10.40.16.62 从库 提供读服务 node3 10.40.16.63 从库 提供读服务 还须预留1个vip,现在不用配置,这里先提一下,后面的安装步骤用得到 10.40.16.71 写vip 三、安装 1. 配置一主二从 其中node1是主库,node2和node3是从库。具体的复制搭建这里就省略,要是这都不会,那么该文章对你就没意思了。 注明:集群中使用的复制账号为repl,密码是'123456' node1(10.40.16.61) (root

高级PHP面试总结

故事扮演 提交于 2019-11-30 02:41:47
1、给你四个坐标点,判断它们能不能组成一个矩形,如判断([0,0],[0,1],[1,1],[1,0])能组成一个矩形。 勾股定理,矩形是对角线相等的四边形。只要任意三点不在一条直线上,任选一点,求这一点到另外三点的长度的平方,两个短的之和如果等于最长的,那么这就是矩形。 2、写一段代码判断单向链表中有没有形成环,如果形成环,请找出环的入口处,即P点 /* *单链表的结点类 */ class LNode{ //为了简化访问单链表,结点中的数据项的访问权限都设为public public int data; public LNode next; } class LinkListUtli { //当单链表中没有环时返回null,有环时返回环的入口结点 public static LNode searchEntranceNode(LNode L) { LNode slow=L;//p表示从头结点开始每次往后走一步的指针 LNode fast=L;//q表示从头结点开始每次往后走两步的指针 while(fast !=null && fast.next !=null) { if(slow==fast) break;//p与q相等,单链表有环 slow=slow.next; fast=fast.next.next; } if(fast==null || fast.next==null)

CM搭建Hadoop全分布式

╄→尐↘猪︶ㄣ 提交于 2019-11-30 02:37:41
1.1 环境配置 使用XShell软件,创建5个会话窗口,五个服务器的地址分别是: 1.1.1 配置主机名、hosts文件 # 主机名 # 配置各节点的主机名 [root@main-master ~]# vim /etc/sysconfig/network #查看 [root@main-master ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=main-master # 配置 hosts [root@main-master ~]# vim /etc/hosts #在配置文件上加各节点IP # 一定要保留 127.0.0.1 ,否则 cm 分发会心跳错误 127.0.0.1 localhost 1.1.2 配置各节点之间的ssh免密玥 # 在各个节点生成自己的公钥和私钥 [root@main-master ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa [root@data1 packages]# cd ~ # 将自己的公钥分发给其他节点,包括自己分发给自己 首先在 main-master 节点上 [root@main-master ~]# ssh-copy-id -i .ssh/id_rsa.pub main-master [root@main-master ~]# ssh

MySQL数据库初识

非 Y 不嫁゛ 提交于 2019-11-30 02:13:01
一 数据库概述 1. 数据库???   什么是数据库呢?   先来看看百度怎么说的 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。   百度的貌似不好理解啊,让我说啊,数据库是存储数据的地方,超哥,你这不是废话么?这位同学,你你你你你说的对,哈哈,存数据的地方是存在哪里呢,存在硬盘上,为什么不是存在内存里面,因为内存无法永久保存。之前我们存数据都是使用的文件,在一个word文档里面写一些羞羞的网址,然后保存,就存储到硬盘上了。有同学就会说了,超哥,我这通过文件不是也将数据保存上了吗?是的,没毛病,但是你想,通过文件来操作数据,效率是不是很低,首先打开关闭就比较慢,其次是我们操作起来也比较麻烦,对不对,如果我想记录一条关于我个人信息的数据,我使用文档来存,是不是很不友好,并且我们要查数据的时候,看图1:图1是一个word里面记录的信息,如果我想查询出所有人的名字,这个操作是不是就很难搞定了,来来来,配合起来~~,你应该说是的,那我就接着说,有同学可能就会说了,老师我用excel啊,看图2,一列就搞定了,没毛病,但是你想打开操作excel效率低不低。并且通过你自己写的程序来操作这些文件是不是很麻烦

MySQL数据库优化技巧

青春壹個敷衍的年華 提交于 2019-11-30 00:35:51
一个成熟的数据库架构并不是一开始设计就具备高可用、高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善。这篇文章主要谈谈MySQL数据库在发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分为以下五个阶段: 阶段一:数据库表设计 项目立项后,开发部门根据产品部门需求开发项目。 开发工程师在开发项目初期会对表结构设计。对于数据库来说,表结构设计很重要,如果设计不当,会直接影响到用户访问网站速度,用户体验不好!这种情况具体影响因素有很多,例如慢查询(低效的查询语句)、没有适当建立索引、数据库堵塞(锁)等。当然,有测试部门的团队,会做产品测试,找Bug。 由于开发工程师重视点不同,初期不会考虑太多数据库设计是否合理,而是尽快完成功能实现和交付。等项目上线有一定访问量后,隐藏的问题就会暴露,这时再去修改就不是这么容易的事了! 阶段二:数据库部署 是时候运维工程师出场了,项目上线。 项目初期访问量一般是寥寥无几,此阶段Web+数据库单台部署足以应对在1000左右的QPS(每秒查询率)。考虑到单点故障,应做到高可用性,可采用MySQL主从复制+Keepalived实现双机热备。主流HA软件有:Keepalived(推荐)、Heartbeat。 阶段三:数据库性能优化 如果将MySQL部署到普通的X86服务器上,在不经过任何优化情况下,MySQL理论值正常可以处理1500左右QPS