(一)搭建主从从数据库
主服务器master
首先下载mysql57安装包,然后解压
复制改目录到/usr/local底下并且改个名字
cp -r mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql
删掉/etc/my.cnf 这个会影响mysql57的启动
rm -rf /etc/my.cnf
创建files目录
mkdir /usr/local/mysql/mysql-files
创建mysql用户
useradd -r -s /sbin/nologin mysql
修改files的权限
chown mysql:mysql /usr/local/mysql/mysql-files/
chmod 750 /usr/local/mysql/mysql-files/
初始化并且查看mysql登录的初始密码
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql
看到data文件证明初始化成功
为了便捷,cp一下support-files/mysql.server并且改个名字方便启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql57
启动mysql
service mysql57 start
出现success即成功
创建my.cnf文件
vim /usr/local/mysql/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/db01-master.err
log-bin=/usr/local/mysql/data/binlog
server-id=10
character_set_server=utf8mb4
重新启动
先start再restart
再修改profile环境文件,方便登录mysql
[root@master ~]# sed -i '$aexport PATH=/usr/local/mysql/bin:$PATH' /etc/profile
[root@master ~]# source /etc/profile
这里输入前面的初始化密码即可进
进去之后先改密码
set password='1';
再登录验证发现没有问题
创建数据库eleme
create database if not exists eleme charset utf8mb4;
再使用它
use eleme;
创建表,t_user
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) not null);
再查看
desc t_user;
向表中添加数据
insert into t_user (id,name,username,password,remark)values("1","超级管理员","admin","admin","超级管理员");
insert into t_user (id,name,username,password,remark)values("2","普通用户","guest","guest","普通用户");
再查看
select * from t_user;
为从服务器添加用户
create user 'slave01'@'%' identified by '1';
create user 'slave02'@'%' identified by '1';
grant replication slave on *.* to 'slave01'@'%';
grant replication slave on *.* to 'slave02'@'%';
flush privileges;
在master中锁表,然后查看⼆进制⽂件和位置
flush tables with read lock;
show master status;
从服务器slave01
先下载mysql57包,从master传过来就可以了
scp root@192.168.1.21:~/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz ./
再解压
tar -xvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
复制目录到/usr/local底下
cp -r mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql
在master和slave上下载rsync同步数据,但是要删掉master目录下的一个文件,如下图
删除圈出来的
rm -rf auto.cnf
yum -y install rsync
在主服务器上
rsync -av /usr/local/mysql/data root@192.168.1.22:/usr/local/mysql/
然后去从查看有无data
然后做下面的操作
rm -rf /etc/my.cnf
mkdir /usr/local/mysql/mysql-files
useradd -r -s /sbin/nologin mysql
chown mysql:mysql /usr/local/mysql/mysql-files/
chmod 750 /usr/local/mysql/mysql-files/
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql57
service mysql57 start
配置文件中是
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3310
log-error=/usr/local/mysql/data/db01-slave.err
relay-log=/usr/local/mysql/data/relaylog
server-id=11
character_set_server=utf8mb4
然后再重启
修改环境变量
sed -i '$aexport PATH=/usr/local/mysql/bin:$PATH' /etc/profile
source /etc/profile
连接数据库
mysql -uroot -p
在从服务器中,使⽤change master to 指定主服务器,并实现数 据同步
change master to
-> master_host='192.168.1.21',
-> master_user='slave01',
-> master_password='1',
-> master_port=3306,
-> master_log_file='binlog.000002',
-> master_log_pos=2594;
start slave;
show slave status\G;
发现是连接状态
然后退出mysql去远程连接,获得公钥
再尝试一遍
mysql -uslave01 -p1 -h 192.168.1.21 -P3306 --get-server-public-key
进去之后直接退出来
然后mysql -uroot -p
验证同步数据
也没有问题
从服务器slave02
道理和slave01一样,按步骤来就完成了
验证也没有问题
(二)Mycat配置
首先下载并且解压安装包
然后复制目录并且改名
[root@mycat ~]# cp -r jdk1.8.0_192/ /usr/local/jdk
[root@mycat ~]# cp -r mycat/ /usr/local/
查看并且配置jdk环境
[root@mycat ~]# sed -i '$aexport JAVA_HOME=/usr/local/jdk' /etc/profile
[root@mycat ~]# source /etc/profile
[root@mycat ~]# sed -i '$aexport PATH=$PATH:$JAVA_HOME/bin' /etc/profile
[root@mycat ~]# source /etc/profile
配置文件
vim /usr/local/mycat/conf/server.xml
“ln”是master创建用于被访问的
去master机器创建
create user 'ln'@'%' identified by '1';
grant all on *.* to 'ln'@'%';
flush privileges;
vim /usr/local/mycat/conf/schema.xml
启动服务
/usr/local/mycat/bin/mycat start
检查启动的是否成功
root@mycat ~]# netstat -lnput|grep 8066
tcp6 0 0 :::8066 :::* LISTEN 4547/java
开启8080端口和3310端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=3310/tcp --permanent
firewall-cmd --reload
(三)搭建Java_static
下载下图软件包并且解压jdk包
解压完成以后cp jdk 目录,复制到/usr/local底下
cp -r jdk-17.0.12/ /usr/local/jdk
再部署环境变量
vim /etc/profile
检验Java版本
然后创建一个文件
vim application.yml
再上传一个包直接用Java运行它
java -jar eleme_server-0.0.1-SNAPSHOT.jar
然后去浏览器访问Java_static的地址加8080端口
账户密码都用admin测试
就成功登录进来了
(四) 使⽤lvs代理java服务
(1)ds
1. 挂载vip
ifconfig ens33:0 192.168.1.41 broadcast 192.168.1.41 netmask 255.255.255.255 up
2. 为vip添加路由
route add 192.168.1.41 dev ens33:0
3. 安装ipvsadm
yum -y install ipvsadm
ipvsadm -Ln
ipvsadm -C
4. 设置负载均衡规则
ipvsadm -A -t 192.168.1.41:8080 -s rr
ipvsadm -a -t 192.168.1.41:8080 -r
192.168.1.26 -g
ipvsadm -a -t 192.168.1.41:8080 -r
192.168.1.27 -g
(2)rs
1. 挂载vip
ifconfig lo:0 192.168.1.41 broadcast 192.168.1.41 netmask 255.255.255.255 up
2. 为vip 添加路由
route add 192.168.1.41 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_announce
(五)Nginx 代理端⼝
upstream javagroup {
Server localhost:8080 weight=95;
Server 192 168.71.15:8080 weight=3
Server 192.168.71.16:8080 weight=2;
}
进入配置文件修改下图内容