简介:在实际的生产环境中,如果对MySQL数据库的读和写都在一台数据库服务器中操作,无论是安全性、高可用性还是高并发等各个方面都是不能满足实际需求的。本次将首先讲解MySQL主从复制和MySQL读写分离的原理。然后介绍如何配置MySQL主从复制和MySQL读写分离。
一. mysql主从复制读写分离
1.MySQL主从复制的作用和原理
1)Mysql主从复制的作用
保证mysql数据的可靠性和稳定性
避免单点故障
1)MySQL主从复制特点
可靠性强
稳定性强
避免数据丢失
3)MySQL主从复制的原理
主数据库开启二进制日志,允许日志复制
备份mysql监听主mysql日志变化,复制日志到本地读取并应用日志中的操作
保证和主mysql数据实现同步
2.读写分离
1)读写分离的作用
支持高并发
加快用户读取和写入速度
2)读写分离的原理
客户端访问代理程序,代理程序判断用户数读取1还是写入数据
用户写入数据代理服务器将任务转发向主mysql服务器
用户读取数据代理服务器将用户转发向从mysql服务器
实现读取和写入
3.MySQL代理程序
1)mysql-proxy
mysql官方提供的读写分离工具
Mysql-proxy工作在客户端和服务端之间
Mysql-proxy判断用户是读取还是写入数据
需要二次1开发
使用比较复杂
2)amoeba
简称变形虫
amoeba使用java语言编写
修改配置文件监控主从mysql和识别用户读取写入并做转发
不需要二次开发
使用简单
灵活
二.配置mysql主从复制
1、安装ntp服务器
1)安装ntp服务器
2)配置ntp服务器
3)启动服务
4)客户端同步时间
2、配置主MySQL服务器和从MySQL服务器
1)配置主mysql服务器
49 log-bin=mysql-bin 开启二进制日志
57 server-id = 10 指定mysql服务器ID
58 log-slave-update= true 开启日志复制功能
2)启动mysql主数据库服务
3)修改从mysql主配置文件
4)启动从mysql服务
3、配置主从复制
1)配置主mysql服务器授权指定账户复制数据,复制账户是slave密码pwd@123
2)查看主mysql日志ID
3)配置从mysql复制主mysql数据库数据
4)启动从mysql
5)查看slave状态
测试:
在主mysql数据库创建benet
从mysql服务器数据同步
三、配置读写分离
1、修改计算机的host文件。
2、配置安装amoeba
1)指定anoeba安装目录
2)安装jdk
3)配置环境变量
4)更新环境变量
3、配置授权读写分离账户
4、修改amoeba配置文件
1)配置访问amoeba账户和密码
amoeba端口8066
访问账户amoeba及访问密码
2)修改amoeba配置文件访问mysql数据
3)启动amoeba
4)监听8066端口
5)登录amoeba
验证:
创建库名并查看从服务器
关闭从服务器的slave功能
创建表名插入内容
主服务器负责写入,从服务器负责读取;客户端查看数据要经过从服务器查看数据,关闭从服务器的slave功能,则数据无法查询,测试成功。