目录
一.故事背景
在学习完MySQL的基础命令以及高级特性之后,要接触的是主从复制和读写分离,非常实用,为了保证服务器之间的同步性,主从复制很重要
二.MySQL数据库主从复制
1.主从复制概述
1、master开启二进制日志记录
2、slave开启IO进程,从master中读取二进制日志并写入slave的中继日志
3、slave开启SQL进程,从中继日志中读取二进制日志并进行重放
4、最终,达到slave与master中数据一致的状态,我们称作为主从复制的过程。
2.基础环境设置
网络对时
主服务器
从服务器
防火墙与SELinux
主与从主机都需要操作
3.配置主从复制
主服务配置
启动服务并验证配置
创建从主机可以进行访问的用户
查看master正在使用的日志文件及日志书写位置
#注意:查看位置完毕后,不要对master做insert、update、delete、create、drop等操作!!!
从服务器配置
配置验证,此时没有与主服务器进行连接,所以没有产生对应的relay log
配置从服务器的所属主服务器
启动slave角色,默认没有配置主从时,所有的mysql节点都是master
查看数据目录
测试,主服务器创建数据库
从服务同步查看
一般情况下,都与网络通信异常有关系。排查防火墙、物理网络连接等。二进制日志文件名或位置错误也会引起IO线程异常。
reset replica;
##用于重置SQL线程对relay log的重放记录!!
三.MySQL数据库读写分离
1.maxscale概述
MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换。 官网:https://mariadb.com/kb/en/mariadb-enterprise/mariadb-maxscale-20/
2.读写分离
1、环境说明
数据库角色 | IP | 应用与系统版本 |
---|---|---|
master | 192.168.71.162 | rocky linux8 mysql-8.0.36 |
slave | 192.168.71.163 | rocky linux8 mysql-8.0.36 |
maxscale | 192.168.71.164 | rocky linux8 maxscale-24.02.4-1.rhel.8.x86_64 |
2、maxscale安装
3、配置maxscale
登录到主服务器,创建maxscale账户
授权maxscale全部功能
在maxscale上安装mysql
登录到master
回到master主库设置增删改查权限
在maxscale上修改配置文件
注释掉只读配置
修改读写分离服务
配置listener #注释掉只读 ,修改读写分离
切换到主库创建monitor用户
赋权
启动服务
查看端口
查看有哪些服务
查看后台服务器有哪些
测试
用客户机连接maxscale
username:admin
password:admin
会发现进行读操作时,是在slave的从数据库上执行;在进行写操作时,是在master主数据库上执行
四.总结
数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能,学会配置对未来帮助很大