1. 配置⼀主⼆从mysql57
1. mycat对mysql8不完全⽀持
2. mysql8主从问题不⼤ get_pub_key=1
1. gtids事务复制
2. 删除/etc/my.cnf
3. 同步data⽂件需要先停⽤mysql服务,删除data⽬录中的
auto.cnf
4. gtid模式以及经典模式都需要锁表
flush tables with read lock;
unlock tables;
set @@global.read_only=ON;
set @@global.read_only=OFF;
5. 开放mysql服务端⼝
firewall-cmd --zone=public --add
port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
firewall-cmd --list-servcie3. 添加数据库和数据表
1. 不能修改从服务器
2. 创建库和表
#!/bin/bash
/usr/local/mysql/bin/msyql -proot << EOF
create database if not exists eleme charset
utf8mb4;
use eleme;
create table t_user(
id int primary key auto_increment,
name varchar(45) not null,
username varchar(45) not null,
password varchar(45) not null,
remark varchar(45)
);
insert into
eleme.t_user(name,username,password,remark)
values("超级管理员","admin","admin","管理
员");
insert into
eleme.t_user(name,username,password,remark)
values("访客","guest","guest","最低权限");quit
EOF
4. 添加登录数据,可以输⼊sql语句,也可以在图形化界⾯
5. 添加mycat读写分离负载均衡
1. nginx,haprox,lvs负载均衡技术
2. 分不清什么数据库能读,什么数据库能写
3. master mysql服务器是可以读写,slave mysql服务器是只
能读
4. mysql是阿⾥开源项⽬,所以必须安装java环境
5. 步骤
1. 开放8066端⼝
2. 上传mycat和jdk1.8
3. 解压
4. 配置部署java环境
1. 复制到 /usr/local⽬录下
2. 配置/etc/profile
3. source profile
6. mycat的配置
1. server.xml
1. user标签设置对外的账号和密码,以及数据库名称2. 如果只是代理⼀个主从,就注释其他的user标签
![](https://i-blog.csdnimg.cn/direct/49d2a54e619e41ab8ad33d4c2d96baf0.png)
2. Schema.xml
1. schema标签 添加dataNode=“xx” name="eleme"
2. datahost修改
![](https://i-blog.csdnimg.cn/direct/dc3b95d35c5a48e897198e0e9ebf2853.png)
3.
![](https://i-blog.csdnimg.cn/direct/afb7845925c7434ea56a5e0f95aab379.png)
4.
![](https://i-blog.csdnimg.cn/direct/f75ddfacb03145179b349ec60a8ffbce.png)
5. /usr/local/mycat/bin/mycat start|stop
6. 查看⽇志⽂件wrapper.log《》
7. mycat schema.xml的标签
<mycat:schema>
<schema name="server.xml中的数据库名
称" dataNode="dn1"></schema>
<dateNode name="dn1"
dataHost="aaa" database=“eleme”/>
<dateHost name="aaa">
<writeHost>
<readHost >
</readHost>
</writeHost>
</dataHost>
</mycat:schema>6. 部署2台java后端服务器,jdk版本17
1. 上传jdk安装https://download.oracle.com/java/17/latest/jd
k-17_linux-x64_bin.tar.gz
2. 配置环境变量/etc/profile
![](https://i-blog.csdnimg.cn/direct/b7a50f6cee0e4627bdba95eac860a251.png)
3. Java -version
7. 部署饿了么后端项⽬ 登录模块
1. 修改application.yml⽂件
1. port 默认8080,可以修改为其他的端⼝,但是修改完
成之后,需要修改防⽕墙端⼝
2. url jdbc:mysql://mycat的ip:mycat8066端⼝/eleme3. username=zhangmin
4. password=zhangmin
2. 先打开java服务器的端⼝
firewall-cmd --add-port=8080/tcp --
permanent
firewall-cmd --reload
3. 启动后端服务 jar包
nohup java -jar element_server_xxxxx.jar&
4. 在远程浏览器上测试
8. 使⽤lvs代理java服务
1. ds
1. 挂载vip
ifconfig ens33:0 192.168.71.18
broadcast 192.168.71.18 netmask
255.255.255.255 up
2. 为vip添加路由
route add 192.168.71.18 dev ens33:03. 安装ipvsadm
yum -y install ipvsadm
ipvsadm -Ln
ipvsadm -C
4. 设置负载均衡规则
ipvsadm -A -t 192.168.71.18:8080 -s rr
ipvsadm -a -t 192.168.71.18:8080 -r
192.168.71.15 -g
ipvvsadm -a -t 192.168.71.18:8080 -r
192.168.71.16 -g
2. rs
1. 挂载vip
ifconfig lo:0 192.168.71.18 broadcast
192.168.71.18 netmask 255.255.255.255
up
2. 为vip 添加路由route add 192.168.71.18 dev lo:0
3. 抑制接受请求
echo 1 >
/proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 >
/proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 >
/proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 >
/proc/sys/net/ipv4/conf/all/arp_announc
e
9. Nginx 代理端⼝
![](https://i-blog.csdnimg.cn/direct/1edcebfd498b4e6aacc10b929446b356.png)
10.
![](https://i-blog.csdnimg.cn/direct/1522d62893d1421c8c512d2da077c9b6.png)
11. 测试