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-servcie
3.
添加数据库和数据表
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
标签
2. Schema.xml
1. schema
标签 添加
dataNode=“xx” name="eleme"
2. datahost
修改
3.
4.
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/jdk-17_linux-x64_bin.tar.gz
2.
配置环境变量
/etc/profile
3. Java -version
7.
部署饿了么后端项⽬ 登录模块
1.
修改
application.yml
⽂件
1. port
默认
8080
,可以修改为其他的端⼝,但是修改完成之后,需要修改防⽕墙端⼝
2. url jdbc:mysql://mycat
的
ip:mycat8066
端⼝
/eleme
3. 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:
0
3.
安装
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
代理端⼝
10.
11.
测试