目录
Mysql主从复制
介绍
步骤
配置
前置条件
提前准备好两台服务器,分别安装Mysql并启动服务成功(systemctl status mysqld查看mysql状态)
主库Master(虚拟机ip地址,已经更改为静态ip地址):192.168.64.134
从库Slave:192.168.64.xxx (windows IP地址)192.168.64.135
主库Master
第一步
第二步
第三步
本案例,用户名为xiaoming 用户密码为Root@123456
需要先登录数据库
密码root
从库Slave
第一步
第二步
第三步
master_log_file和master_log_pos会变动
change master to
master_host='192.168.64.134',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000008',master_log_pos=294;
第四步
即可
测试主从复制是否生效
密码皆为root
建立主库
建立从库
测试现象
主库中新建数据库itcast
会发现从库中也出现了itcast数据库
接着在主库的itcast数据库中新建一张user表
会发现从库也出现了该表
说明,在主库的操作会复制到从库当中,同理,当我们在主库的user表中插入数据,从库也会复制进去
读写分离案例
背景
思考
1.如何在程序中实现读写分离
2.程序如何判断这是一条查询sql还是删除sql
3.根据该sql是如何找到从库而不是主库
Sharding-JDBC
介绍
框架特点
坐标
只需导入坐标即可
入门案例
该案例需要先将主从复制配置完成
准备数据库
在主库中创建rw(read,write读写)数据库
在rw数据库中创建user表
以课程资料的初始工程项目rw_demo为例
使用Sharding-JDBC实现读写分离步骤:
1.导入Sharding-JDBC的maven坐标
2.在yml配置文件中配置读写分离规则
只需要根据格式会修改配置信息和添加数据源即可
rw是数据库的名称
3.在yml配置文件中配置允许bean覆盖
项目实现读写分离
数据库环境准备(主从复制)
1.在主库中创建reggie数据库(从库会进行复制)
2.导入课程资料的sql表
代码改造
注意:在reggie项目改造时,要切换成分支(v1.1),不要在master主分支上修改
和之前一样
功能测试
测试日志显示:
查询操作对应从库slave
增删改操作对应主库master
测试完成
进行推送->进行合并分支