MySQL主从服务器的原理和设置
一 主从配置的原理
mysql的Replication是一个异步的复制过程,从一个mysql
instance(Master)复制到另一个mysql instance(Slave),
在master与slave之间的整个复制过程主要由三个线程完成,分别为Master端得IO线程和Slave端得IO线程和Sql线程。整
个过程如下:
1 Slave上的IO线程连接上Master,并请求从指定日志的指定位置之后的日志内容
2 Master收到来自Slave的IO线程请求后,通过Master上的IO线程根据请求信息读取日志信息返回给Slave端IO线程。
除了日志所包含的信息之外,还包含本次返回信息在Master端得Binary Log文件的名称以及位置
3 Slave的IO线程接收到信息后,将接收到的日志内容依次写到Slave端得RelayLog文件末尾,并读取Master端得Binary
Log文件名和位置记录到master-info中,以便下次的IO请求
4 Slave的Sql线程检测到Relay Log中有新增内容后,马上解析可执行的Sql语句,并在本机上执行
二 设置过程
1 首先准备两台服务器:主服务器wwwlinuxidc.com 从服务器www.linuxidc.net
2 在主数据库服务器中为从服务器添加一个拥有访问主库的用户,其命令为:
GRANT REPLICATION SLAVE ON *.* TO ‘username’@’www.linuxidc.net’ IDENTIFIED BY 'password'
注: username是你创建的可以访问主库的用户名,IP为从机IP,password为用户登录密码
添加后在从服务器上用 mysql -hwwwlinuxidc.com -uusername -ppassword 来测试下是否可以访问主数据库
3 修改主服务器的配置文件
vi /etc/my.cnf
server-id = 1 ##数据库服务器都有唯一的server-id,通常主服务器制定为1,www.linuxidc.com默认的配置文件中已经存在,特别注意从服务器配置中要将此行注释掉
log-bin=mysql-bin ##mysql进行主从复制是通过二进制的日志文件来进行的,所以必须开启mysql的日志功能
以上两行配置都已经存在,还需额外添加如下配置:
log_bin = /home/mysql/mysql/log/mysql-bin.log #二进制文件存放目录,www.linuxidc.com可自行定义,但需注意目录有写权限
read-only = 0 #主机读写都可以
binlog-do-db = test1 #设定同步的数据库,多库可以多行设置
binlog-do-db = test2
binlog-ignore-db = test3 #设定不用同步的数据库,多库可以多行设置
binlog-ingore-db = test4 17jquery.com
4 修改从服务器的配置文件
vi /etc/my.cnf
首先找到server-id = 1 这行,用#将这行注释掉,不然会和主机冲突,然后添加
server-id = 2
replicate-do-db = test1 #允许同步的数据库,多库可以多行设置
replicate-do-db = test2
replicate-ignore-db = test3 #不需同步的数据库,多库可以多行设置
replicate-ignore-db = test4
master-connect-retry=30
master-host= wwwlinuxidc.com #主服务器地址
master-user=username #刚刚添加访问主服务器的用户名
master-password=password #主机密码
master-port=3306
read-only=1 #只允许读操作(连接用户不能有SUPER权限,否则无效)
5 重启主服务器和从服务器
在主服务器上登录mysql 输入
show master status\G
可查看主服务器状态
在从服务器上登录
mysql start slave
(启动从机) 然后show slave status \G ,如果以下两项都为yes即是从机配置成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
从数据库服务器的通常操作命令有:
start slave; ####启动复制线程
stop slave; ####停止复制线程
reset slave; ####重置复制线程
change master to; ###动态改变到主服务器的配置 如change master to master_user='username';
MySQL主从服务器的原理和设置的更多相关文章
- mysql主从服务器复制原理
在实际企业应用环境当中,单台mysql数据库是不足以满足日后业务需求的.譬如服务器发生故障,没有备份服务器来提供服务的话,业务就得停止.介于这种情况,我们来学习一下mysql主从复制. 将Mysql的 ...
- 2-18,19 搭建MySQL主从服务器并并通过mysql-proxy实现读写分离
MySQL主从服务器 实现方式: MySQL REPLICATION Replication可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave) 默认情况下这种 ...
- mysql主从服务器
#mysql主从服务器 mysql-bin.003673 | 106 查看错误日志show variables like '%log_error%'; replicate-do-table=testm ...
- MYSQL 主从服务器配置工作原理
一. 主从配置的原理: Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql instanc ...
- 深入解析Mysql 主从同步延迟原理及解决方案
MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出现问题时,可以 ...
- 解读mysql主从配置及其原理分析(Master-Slave)
在windows下配置的,后面会在Linux下配置进行测试,需要配置mysql数据库同步的朋友可以参考下. 1.在主数据库服务器为从服务器添加一个拥有权限访问主库的用户:GRANT REPLICATI ...
- CentOS 7.2 安装配置mysql主从服务器
MySQL官方压缩包安装: 1:下载mysql官方版本,此处以目前最新版本5.7.14为例,下载的64位版本文件为: mysql-5.7.14-linux-glibc2.5-x86_64.tar 2: ...
- mysql主从备份及原理分析
一.mysql主从备份(复制)的基本原理mysql支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更 ...
- mysql主从服务器的配置
使用mysql主从复制的好处有: 1.采用主从服务器这种架构,稳定性得以提升.如果主服务器发生故障,我们可以使用从服务器来提供服务. 2.在主从服务器上分开处理用户的请求,可以提升数据处理效率. 3. ...
随机推荐
- C#获取主机信息
获取主机信息 最近需要做一个配合集控系统收集各个终端设备的一些信息,大致需要收集终端设备的硬件信息,CPU.内存以及硬盘使用率等信息.网上查看了一番,使用WMI来获取这些信息是最方便的.实现代码如下: ...
- WebGPU学习(八):学习“texturedCube”示例
大家好,本文学习Chrome->webgpu-samplers->texturedCube示例. 上一篇博文: WebGPU学习(七):学习"twoCubes"和&qu ...
- Redis启动方式
一.前端启动 直接运行bin/redis-server将以前端模式启动.[bin目录是在/usr/local/redis/bin] # ./redis-server 启动缺点: ssh命令窗口关闭则r ...
- Ubuntu:MySQL与phpmyadmin安装、配置并使用。
0. 小建议 Ubuntu 16.04.因为MySQL对于Ubuntu 18.04不是很适配,会出现终端MySQL无法输入中文等问题.如果用Ubuntu 18.04,会需要多解决很多细节问题. 建议将 ...
- 第五小节之JAVA IO流
文件:文本文件是一种计算机文件,它是一种典型的顺序文件,其文件的逻辑结构又属于流式文件,特别的是指以ASCLL码方式(也称为文本方式)存储的文件,而更确切地说,英文.数字等字符存储的是ASCLL码,而 ...
- puppet自动化安装服务
puppet自动化部署 主机环境: server(master)端:172.25.7.1(server1.example.com) client(agent)端:172.25.7.2 172.25.7 ...
- zabbix 内存溢出
tail -f /var/log/zabbix/zabbix_server_log ::165110.914 ================================ ::165110.914 ...
- 牛客OI周赛13-提高组 比赛总结
比赛情况 1h才写出T1 100pts + T2 50pts(都是简单dp可还行).然后就去颓废了.颓废完来康康T3的暴力,wow,T3咋这么难呢!?期望概率好像不太会了,退了吧qwq. 所以最后 1 ...
- python中字符串格式化的两种方法
知识点汇总;1-字符串格式化输出方法一: % 1-print('名字是 %s,年龄是%s' % (name ,age)) 2- %s ---字符串-----相当于执行了str() 3- (name , ...
- 深入理解JAVA虚拟机 虚拟机字节码执行引擎
执行引擎 执行引擎是java虚拟机的重要组成部分.它的作用是接收字节码,解析字节码,执行并输出执行结果. 虚拟机是相对于物理机的概念,物理机的执行引擎是直接建立在处理器.寄存器.指令集和操作系统的层面 ...