mysql主从配置

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] #主库配置

在cnetos7上搭建mysql主从服务

纵饮孤独 提交于 2019-12-05 12:35:50
本文主要是介绍在 centos 上搭建 mysql 的主从服务器。如果没有搭建过的,可以查看我以前的博客,里面有详细的安装 centos 和在 centos 上安装 mysql 的说明。 一.安装从虚拟机: 1. 右键— > 管理— > 克隆 2.选择完整克隆 3. 修改虚拟机的位置,默认在 C 盘下。 4.当克隆完成后,就有这样两台虚拟机了, 由于克隆的两台服务器, ip 是一样的,所以需要修改从服务虚拟机 ip ; 5.修改从服务虚拟机的配置,打开配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33   如果不知道配置文件是哪个,可以按照下面的方式找到, 6. 找到下面红线部分,将 ip 地址修改,我这里将 150 改为 151: 7.修改完成后,重启 systemctl restart network 8. 使用 xShell 连接新配置的虚拟机 二.配置mysql主服务: 不管哪个项目, 80% 都是以读为主。所以一般要求从库的配置要高于主库。 对于主库的配置,主要是开启binlog日志。 1.进入 mysql 查看状态: show master status; 可以看到,执行的结果为空,所以需要开启 binlog 日志; 2. 找到 mysql 的配置文件: vi /etc/my.cnf 3. 在配置文件中添加 binlog

MySQL学习笔记:高级篇

橙三吉。 提交于 2019-12-05 11:59:18
1. 存储引擎 1.1 InnoDB表引擎 1.2 MyISAM表引擎 1.3 其他的表引擎 2. 索引 2.1 索引对性能的影响 2.2 索引的使用场景 2.3 索引的类型 2.4 MySQL索引的创建原则 2.5 MySQL索引的注意事项 3. 查询优化 3.1 查找分析SQL查询慢的原因 3.2 优化查询过程中的数据访问 3.3 优化长难的查询语句 3.4 优化特定类型的查询语句 4. MySQL高可扩展和高可用 4.1 分区表的原理 4.2 分库分表的原理 4.2.1 水平分表 4.2.2 垂直分表 4.3 MySQL的复制原理及负载均衡 4.4 MySQL安全性 4.4.1 SQL查询的安全方案 4.4.2 MySQL的其他安全设置 引用资料 1. 存储引擎 1.1 InnoDB表引擎 默认事务型引擎,最重要最广泛的存储引擎,性能非常优秀 。数据存储在 共享表空间 ,可以通过配置分开。 对主键查询的性能高于其他类型的存储引擎 。内部做了很多优化,从磁盘读取数据时自动在内存构建hash索引, 插入数据时自动构建插入缓冲区 通过一些机制和工具支持真正的 热备份 ,支持 崩溃后的安全恢复 ,支持 行级锁 ,支持 外键 1.2 MyISAM表引擎 mysql5.5版本之前的默认存储引擎 ,拥有全文索引、压缩、空间函数。 不支持事务和行级锁 , 支持表锁 ,不支持奔溃后的安全恢复

MySQL学习笔记-复制

纵饮孤独 提交于 2019-12-05 11:57:07
MySQL 从 3.23 版本开始提供复制的功能。复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到复制服务器(也叫从库)上,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保存同步。 MySQL 支持一台主库同时向多台从库进行复制,从库同时也可以作为其他服务器的主库,实现链状的复制。 MySQL 复制的优点主要包括以下 3 个方面: 1.如果主库出现问题,可以快速切换到从库提供服务; 2.可以在从库上执行查询操作,降低主库的访问压力; 3.可以在从库上执行备份,以避免备份期间影响主库的服务。 注意:由于 MySQL 实现的是异步的复制,所以主从库之间存在一定的差距,在从库上进行的查询操作需要考虑到这些数据的差异,一般只有更新不频繁的数据或者对实时性要求不高的数据可以通过从库查询,实时性要求高的数据仍然需要从主数据库获得。 一、 MySQL 复制原理: MySQL 的 Replication 是一个异步的复制过程,从一个 MySQL 节点(称之为 Master )复制到另一个 MySQL 节点(称之 Slave )。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程( SQL 线程和 I/O 线程)在 Slave 端,另外一个线程( I/O 线程)在 Master 端。 要实现 MySQL 的

mysql bin-log学习笔记

北慕城南 提交于 2019-12-05 11:23:59
一、bin-log介绍 MySQL的二进制日志可以说是MySQL最重要的日志了,它事件形式记录了所有的DDL和DML更新数据语句,以及所执行消耗的时间,MySQL的二进制日志是事务安全型的。 一般来说开启二进制日志大概会有1%的性能损耗 。其有两个重要的使用场景: 1、主从复制时备机通过dump master节点的bin-log文件来进行数据同步 2、通过使用MySQLBinlog工具做数据恢复。 bin-log包括两类文件: 索引文件(文件名后缀为.index):用于记录所有的二进制文件, 日志文件(文件名后缀为.00000*):记录数据库所有的DDL和DML(导致数据更新)语句事件。 二、Binlog的开启 linux配置开启mysql bin-log日志服务 三、bin-log的三种级别及其对比 1、statement 语句级:记录每次执行导致数据改变的sql语句。 优点:节省存储空间 缺点:可能产生数据不一致问题, 比如: 系统时间获取、随机数函数、自定义函数下使用binlog日志进行数据恢复,由于网络延迟可能产生数据不一致问题。 2、row 行级:记录更新后的数据 优点:其可以精准的记录数据变化,解决主从复制数据不一致问题 缺点:占用较大空间,特别是在批量数据插入、更新的情况下。 3、mixed statement的升级版

MySql Host is blocked because of many connection e

笑着哭i 提交于 2019-12-05 09:51:51
环境: linux,mysql5.5.21 错误: Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 原因:   同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞; 解决方法: 1、提高允许的max_connection_errors数量(治标不治本):   ① 进入Mysql数据库查看max_connection_errors: show variables like '%max_connection_errors%';   ② 修改max_connection_errors的数量为1000: set global max_connect_errors = 1000;   ③ 查看是否修改成功: show variables like '%max_connection_errors%'; 2、使用 mysqladmin flush-hosts 命令清理一下hosts文件(不知道mysqladmin在哪个目录下可以使用命令查找: whereis mysqladmin );   ① 在查找到的目录下使用命令修改:/usr/bin/ mysqladmin flush-hosts

内网服务器离线编译安装mysql5.7并调优

前提是你 提交于 2019-12-05 07:14:47
目录 内网服务器离线编译安装mysql5.7并调优 前言 关于MySQL 一.MySQL安装篇 部署环境 前期准备工具 挂载系统ISO镜像,配置yum源 二.MySQL调优篇 1.对MySQL进行安全设置 2.设置MySQL超时时间 3.MySQL配置文件优化参考1(按需配置即可) 4.MySQL配置文件优化参考2(按需配置即可) 内网服务器离线编译安装mysql5.7并调优 前言 ​ 根据安全性和保密性的要求,内网服务器是不能访问网络的,所以只能离线安装软件,安装MySQL的依赖包需要配置yum源,由于服务器架构的不同,考虑到兼容性,可定制性,以及为了提高MySQL运行性能,编译安装MySQL是最合适的方法。 关于MySQL ​ MySQL是最流行的关系型数据库管理系统之一,使用简单,部署快速,功能全面,可以快速满足中小型公司的数据存储需求。 一.MySQL安装篇 部署环境 服务器版本 MySQL软件版本 CPU架构 CentOS Linux release 7.4.1708 (Core) MySQL 5.7 x86_64 前期准备工具 CentOS-7-x86_64-DVD-1708.iso #下载地址: http://mirror.unpad.ac.id/centos/7.4.1708/isos/x86_64/ gcc-7.3.0.tar.gz #下载地址:https:/

使用ansible搭建mysql主从复制

筅森魡賤 提交于 2019-12-05 06:38:22
系统配置:centos7      mysql5.7 ansible 2.9.1 1、安装ansible yum install epel-release-y yum install ansible 2、编写inventory文件 hosts.ini [mysql_servers] 192.168.235.145 ansible_ssh_user="root" ansible_ssh_pass="xxxxxxx" mysql_role=master server_id=1 192.168.235.146 ansible_ssh_user="root" ansible_ssh_pass="xxxxxxx" mysql_role=slave server_id=2 192.168.235.147 ansible_ssh_user="root" ansible_ssh_pass="xxxxxxx" mysql_role=slave server_id=3 [mysql_servers:vars] master_ip=192.168.235.145 mysql_version=5.7.28 mysql_root_password=sy#M*tFE(11O mysqld_error_log=/var/log/mysqld.log mysql_repl_user=repl mysql_repl

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--15 MHA简介

て烟熏妆下的殇ゞ 提交于 2019-12-05 06:11:05
目录 一.MHA简介 二.工作流程 三.MHA架构图 四.MHA工具介绍 五.基于GTID的主从复制 六.部署MHA 一.MHA简介 松信嘉範: MySQL/Linux专家 2001年索尼公司入职 2001年开始使用oracle 2004年开始使用MySQL 2006年9月-2010年8月MySQL从事顾问 2010年-2012年 DeNA 2012年~至今 Facebook 软件简介 MHA能够在较短的时间内实现自动故障检测和故障转移,通常在10-30秒以内;在复制框架中,MHA能够很好地解决复制过程中的数据一致性问题,由于不需要在现有的replication中添加额外的服务器,仅需要一个manager节点,而一个Manager能管理多套复制,所以能大大地节约服务器的数量;另外,安装简单,无性能损耗,以及不需要修改现有的复制部署也是它的优势之处。 MHA还提供在线主库切换的功能,能够安全地切换当前运行的主库到一个新的主库中(通过将从库提升为主库),大概0.5-2秒内即可完成。 MHA由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。MHA Manager可以独立部署在一台独立的机器上管理多个Master-Slave集群,也可以部署在一台Slave上。 当Master出现故障时,它可以自动将最新数据的Slave提升为新的Master