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标签  
 
 
 
 
 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/jd  
 
 
 k-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端⼝/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 代理端⼝  
 
 
 
 
 10. 
 
 
 
 
 11. 测试 
                


















