前言:使用lvs4层负载作为分发器,分发给后端nginx,由nginx 处理静态页面
# centos 7.6 3台
# 后端nginx 2台 ip 10.3.131.231 10.3.131.230
# lvs分发器 1台 ip DIP 10.3.131.76 VIP 10.3.131.235
# lvs 版本。1.2.1
# nginx 1.16.0
# 防火墙 selinux 关闭
# 源码安装nginx
1、安装编译环境
[root@nginx ~]# yum -y install gcc gcc-c++
2、安装pcre软件包(使nginx支持http rewrite模块)
[root@nginx ~]# yum install -y pcre pcre-devel
3、安装openssl-devel(使nginx支持ssl)
[root@nginx ~]# yum install -y openssl openssl-devel
4、安装zlib
[root@nginx ~]# yum install -y zlib zlib-devel
5、创建用户nginx
[root@nginx ~]# useradd nginx
6、编译安装
[root@nginx ~]# wget http://nginx.org/download/nginx-1.16.0.tar.gz
[root@nginx ~]# tar xzf nginx-1.16.0.tar.gz -C /usr/local/
[root@nginx ~]# cd /usr/local/nginx-1.16.0/
[root@nginx nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --group=nginx --user=nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/tmp/nginx/client_body --http-proxy-temp-path=/tmp/nginx/proxy --http-fastcgi-temp-path=/tmp/nginx/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre --with-http_realip_module --with-stream
[root@nginx nginx-1.16.0]# make && make install
[root@nginx ~]# mkdir /tmp/nginx
[root@nginx ~]# /usr/local/nginx/sbin/nginx # 启动测试
[root@nginx ~]# echo '1' > /usr/local/nginx/html/index.html # 不同页面方便测试
[root@nginx ~]# vim /etc/sysctl.conf
net.ipv4.conf.ens33.arp_ignore = 1
net.ipv4.conf.ens33.arp_announce = 2
[root@nginx ~]# sysctl -p
[root@nginx ~]# ip addr add dev lo 10.3.131.235/32
# 临时设置VIP
[root@lvs ~]# ip addr add dev ens33 10.3.131.235/32
# 永久设置VIP
[root@lvs ~]# cd /etc/sysconfig/network-scripts/
[root@lvs ~]# cp ifcfg-eth0 ifcfg-eth0:1
[root@lvs ~]# cat ifcfg-eth0:1 # 注意设备名称和mac地址与ens33一样
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
NAME="eth0:1"
DEVICE="eth0:1"
ONBOOT="yes"
IPADDR="10.3.131.235"
NETMASK="225.225.225.0"
HWADDR="00:0c:29:af:df:sa"
[root@lvs ~]# systemctl start ipvsadm
注意:启动如果报错: /bin/bash: /etc/sysconfig/ipvsadm: 没有那个文件或目录 需要手动生成文件
# 定义分发策略
-A:添加VIP
-t:用的是tcp协议
-a:添加的是lo的vip地址
-r:转发到realserverip
-s:算法
-L|-l –list #显示内核虚拟服务器表
--numeric, -n:#以数字形式输出地址和端口号
-g --gatewaying #指定LVS工作模式为直接路由器模式DR(也是LVS默认的模式)
-S -save #保存虚拟服务器规则到标准输出,输出为-R 选项可读的格式
rr:轮循
如果添加ip错了,删除命令如下:
# ip addr del 192.168.246.193 dev ens33
[root@lvs ~]# ipvsadm -C #清除内核虚拟服务器表中的所有记录。
[root@lvs ~]# ipvsadm -A -t 10.3.131.235:80 -s rr
[root@lvs ~]# ipvsadm -a -t 10.3.131.235:80 -r 10.3.131.230 -g
[root@lvs ~]# ipvsadm -a -t 10.3.131.235:80 -r 10.3.131.231 -g
[root@lvs ~]# ipvsadm -S > /etc/sysconfig/ipvsadm
[root@lvs ~]# ipvsadm -L -n --stats #显示统计信息
1. Conns (connections scheduled) 已经转发过的连接数
2. InPkts (incoming packets) 入包个数
3. OutPkts (outgoing packets) 出包个数
4. InBytes (incoming bytes) 入流量(字节)
5. OutBytes (outgoing bytes) 出流量(字节)
[root@lvs ~]# ipvsadm -L -n --rate #看速率
1. CPS (current connection rate) 每秒连接数
2. InPPS (current in packet rate) 每秒的入包个数
3. OutPPS (current out packet rate) 每秒的出包个数
4. InBPS (current in byte rate) 每秒入流量(字节)
5. OutBPS (current out byte rate) 每秒出流量(字节)
[root@server ~]# curl http://10.3.131.235
230
[root@server ~]# curl http://10.3.131.235
231
[root@server ~]# curl http://10.3.131.235
230
[root@server ~]# curl http://10.3.131.235
231
[root@server ~]# curl http://10.3.131.235
前言:在第一次架构基础上加入对java项目处理,tomcat集群
# tomcat 7.0.94
ip 10.3.131.236
# jdk 7u67
# 项目代码 jspgouv6
# 关闭防火墙 selinux
# mysql 5.7.28 yum安装及编译安装
ip 10.3.131.239
[root@tomcat ~]# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.94/bin/apache- tomcat-7.0.94.tar.gz
# 下载jdk
JDK下载地址: https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads- javase7-521261.html
# 项目包已提供
[root@tomcat ~]# tar xf apache-tomcat-7.0.94.tar.gz -C /usr/local/ # 解压tomcat 到/usr/local目录下
[root@tomcat ~]# tar xf jdk-7u67-linux-x64.tar.gz -C /usr/local/ # 解压jdk到 /usr/local 目录下
[root@tomcat ~]# cd /usr/local/ # 进入 /usr/local 目录
[root@tomcat ~]# mv jdk1.7.0_67/ java # 修改目录名称
[root@tomcat ~]# mv apache-tomcat-7.0.94/ tomcat
2.修改环境变量
[root@tomcat ~]# vim /etc/profile.d/jdk.sh
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
CATALINA_HOME=/usr/local/tomcat
export CATALINA_HOME
[root@tomcat ~]# source /etc/profile.d/jdk.sh
3.检测
[root@tomcat ~]# java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
4.启动Tomcat
[root@tomcat ~]# /usr/local/tomcat/bin/startup.sh
(如何关闭呢:[root@qianfeng ~]# /usr/local/tomcat/bin/shutdown.sh)
5.检查是否启动成功
[root@tomcat ~]# netstat -tnlp | grep java
tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 6191/java
tcp 0 0 :::8009 :::* LISTEN 6191/java
tcp 0 0 :::8080 :::* LISTEN 6191/java
# 拷贝项目代码
[root@tomcat ~]# rz
[root@tomcat ~]# unzip jspgouV6-ROOT.zip
[root@tomcat ~]# cp -r ROOT/ /usr/local/tomcat/webapps/
[root@tomcat ~]# yum install -y mysql # 安装mysql客户端
[root@tomcat ~]# mysql -p'QianFeng@1234' -h 10.3.131.239
MySQL [(none)]> use jspgou
MySQL [jspgou]> source jspgou.sql
[root@tomcat ~]# vim /usr/local/tomcat/webapps/ROOT/WEB-INF/config/jdbc.properties # 修改下面的配置
jdbc.url=jdbc:mysql://10.3.131.239:3306/jspgou?characterEncoding=UTF-8
jdbc.username=root
jdbc.password=QianFeng@123
主服务器yum安装
清理安装环境:
# yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
# userdel -r mysql
# rm -rf /etc/my*
# rm -rf /var/lib/mysql
[root@mysql1 ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
[root@mysql1 ~]# yum -y localinstall mysql80-community-release-el7-3.noarch.rpm
[root@mysql1 ~]# vim /etc/yum.repos.d/mysql-community.repo
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[root@mysql1 ~]# yum -y install mysql-community-server
[root@mysql1 ~]# systemctl start mysqld
[root@mysql1 ~]# grep passw /var/log/mysqld.log
2019-12-20T04:55:41.379206Z 1 [Note] A temporary password is generated for root@localhost: 6wis,KB.yhLk
[root@mysql1 ~]# mysqladmin -p'6wis,KB.yhLk' password 'QianFeng@123'
[root@mysql1 ~]# mysql -p'QianFeng@123'
mysql> create database jspgou default charset=utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on *.* to 'root'@'%' identified by 'QianFeng@1234';
Query OK, 0 rows affected, 1 warning (0.05 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
# 将老的架构中的nginxupstream指向后端tomcat
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream testweb {
server 10.3.131.236:8080 weight=1 max_fails=1 fail_timeout=2s;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://testweb;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HwTXyMA4-1577026511139)(C:\Users\newrain\AppData\Roaming\Typora\typora-user-images\1576822364949.png)]
tomcat 集群两台,每台4实例
ip ip 10.3.131.236 10.3.131.237
端口采用 8081、8082、8083、8084
主机名 tomcat tomcat2
# 部署多实例
[root@tomcat ~]# cd /usr/local/
[root@tomcat local]# ls
bin etc games include java lib lib64 libexec sbin share src tomcat
[root@tomcat local]# cp -r tomcat tomcat1
[root@tomcat local]# cp -r tomcat tomcat2
[root@tomcat local]# cp -r tomcat tomcat3
[root@tomcat local]# ls
bin etc games include java lib lib64 libexec sbin share src tomcat tomcat1 tomcat2 tomcat3
# 编写修改脚本并执行,此脚本用于生成启动管理脚本
[root@tomcat local]# vim mod-tomcat.sh
sed -i 's#8005#8011#;s#8080#8081#;s#8009#8019#' /usr/local/tomcat/conf/server.xml
sed -i 's#8005#8012#;s#8080#8082#;s#8009#8029#' /usr/local/tomcat1/conf/server.xml
sed -i 's#8005#8013#;s#8080#8083#;s#8009#8039#' /usr/local/tomcat2/conf/server.xml
sed -i 's#8005#8014#;s#8080#8084#;s#8009#8049#' /usr/local/tomcat3/conf/server.xml
cat >/usr/local/tomcat/bin/start.sh <<'EOF'
#!/bin/bash
#tomcat
export CATALINA_BASE="/usr/local/tomcat"
case "$1" in
start)
$CATALINA_BASE/bin/startup.sh
;;
stop)
$CATALINA_BASE/bin/shutdown.sh
esac
EOF
cat >/usr/local/tomcat1/bin/start.sh <<'EOF'
#!/bin/bash
#tomcat1
export CATALINA_BASE="/usr/local/tomcat1"
case "$1" in
start)
$CATALINA_BASE/bin/startup.sh
;;
stop)
$CATALINA_BASE/bin/shutdown.sh
esac
EOF
cat >/usr/local/tomcat2/bin/start.sh <<'EOF'
#!/bin/bash
#tomcat2
export CATALINA_BASE="/usr/local/tomcat2"
case "$1" in
start)
$CATALINA_BASE/bin/startup.sh
;;
stop)
$CATALINA_BASE/bin/shutdown.sh
esac
EOF
cat >/usr/local/tomcat3/bin/start.sh <<'EOF'
#!/bin/bash
#tomcat3
export CATALINA_BASE="/usr/local/tomcat3"
case "$1" in
start)
$CATALINA_BASE/bin/startup.sh
;;
stop)
$CATALINA_BASE/bin/shutdown.sh
esac
EOF
chmod 777 /usr/local/{tomcat,tomcat1,tomcat2,tomcat3}/bin/start.sh
# 第二个脚本,此脚本用于启动或关闭tomcat
[root@tomcat local]# vim re-tomcat.sh
/usr/local/tomcat/bin/start.sh $1
/usr/local/tomcat1/bin/start.sh $1
/usr/local/tomcat2/bin/start.sh $1
/usr/local/tomcat3/bin/start.sh $1
# 查看端口
[root@tomcat local]# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
users:(("master",pid=1403,fd=13))LISTEN 0 100 :::8080
users:(("java",pid=3708,fd=43))LISTEN 0 100 :::8049
users:(("java",pid=4849,fd=44))LISTEN 0 100 :::8081
users:(("java",pid=4819,fd=43))LISTEN 0 100 :::8082
users:(("java",pid=4828,fd=43))LISTEN 0 100 :::8083
users:(("java",pid=4839,fd=43))LISTEN 0 100 :::8019
users:(("java",pid=4819,fd=44))LISTEN 0 100 :::8084
users:(("master",pid=1403,fd=14))LISTEN 0 100 :::8029
users:(("java",pid=4828,fd=44))LISTEN 0 1 ::ffff:127.0.0.1:8005
users:(("java",pid=3708,fd=49))LISTEN 0 100 :::8039
users:(("java",pid=4839,fd=44))LISTEN 0 100 :::8009
# tomcat2 部署
[root@tomcat2 ~]# cd /usr/local/
[root@tomcat2 local]# scp -r 10.3.131.236:/usr/local/{tomcat1,tomcat2,tomcat3,tomcat,java,re-tomcat.sh} ./
[root@tomcat2 local]# vim /etc/profile.d/jdk.sh
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
CATALINA_HOME=/usr/local/tomcat
export CATALINA_HOME
# tomcat && tomcat 1
[root@tomcat1 local]# sh /usr/local/re-tomcat.sh start
[root@tomcat2 local]# sh /usr/local/re-tomcat.sh start
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EAtrdsHP-1577026511140)(C:\Users\newrain\AppData\Roaming\Typora\typora-user-images\1576825666399.png)]
# 两台nginx上修改配置
upstream testweb {
server 10.3.131.236:8081 weight=1 max_fails=1 fail_timeout=2s;
server 10.3.131.236:8082 weight=1 max_fails=1 fail_timeout=2s;
server 10.3.131.236:8083 weight=1 max_fails=1 fail_timeout=2s;
server 10.3.131.236:8084 weight=1 max_fails=1 fail_timeout=2s;
server 10.3.131.237:8081 weight=1 max_fails=1 fail_timeout=2s;
server 10.3.131.237:8082 weight=1 max_fails=1 fail_timeout=2s;
server 10.3.131.237:8083 weight=1 max_fails=1 fail_timeout=2s;
server 10.3.131.237:8084 weight=1 max_fails=1 fail_timeout=2s;
}
centos 7.6 1台 部署单机两实例
前端mysql做读写分离
主库ip 10.3.131.239:3306
从库ip 10.3.131.238:3306,3307
从库采用编译安装
清理安装环境:
# yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
# userdel -r mysql
# rm -rf /etc/my*
# rm -rf /var/lib/mysql
[root@mysql2 ~]# groupadd mysql
[root@mysql2 ~]# useradd -r -g mysql -M -s /bin/false mysql
[root@mysql2 ~]# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake # mysql 编译安装依赖
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.12.tar.gz
[root@mysql2 ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.28.tar.gz
[root@mysql2 ~]# tar xf mysql-boost-5.7.28.tar.gz
[root@mysql2 ~]# cd mysql-5.7.28/
[root@mysql2 ~]# mkdir /data # 数据目录
[root@mysql2 ~]# cmake . \
-DWITH_BOOST=boost \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
[root@mysql2 ~]# make && make install
[root@mysql2 ~]# cd /usr/local/mysql
[root@mysql2 mysql]# chown -R mysql.mysql .
# 第一个实例配置
[root@mysql2 mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data
[root@mysql2 mysql]# bin/mysql_ssl_rsa_setup --datadir=/data
[root@mysql2 mysql]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data
[root@mysql2 mysql]# bin/mysqld_safe --user=mysql &
[root@mysql2 mysql]# cat /etc/profile.d/mysql.sh
PATH=$PATH:/usr/local/mysql/bin
[root@mysql2 mysql]# source ~/.bash_profile
[root@mysql2 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@mysql2 mysql]# chkconfig --add mysqld
[root@mysql2 mysql]# chkconfig mysqld on
[root@mysql2 mysql]# service mysqld start
[root@mysql2 mysql]# mysqladmin -p'vuXciQ9d9n<;' password 'QianFeng@123'
# 第二个实例配置
[root@mysql2 ~]# cat /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data
port=3306
socket=/tmp/mysql.sock
symbolic-links=0
user=mysql
[root@mysql2 ~]# cat /etc/my2.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data2
port=3307
socket=/tmp/mysql2.sock
symbolic-links=0
user=mysql
[root@mysql2 mysql]# mkdir /data2
# 初始化实例2
[root@mysql2 mysql]# mysqld --defaults-file=/etc/my2.cnf --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data2
# 编写脚本管理数据库
[root@mysql2 ~]# cat /usr/bin/mod-mysql
#!/usr/bin/bash
# mysql2
if [[ $# -ne 1 ]];then
echo "错误的参数个数"
exit 1
fi
case $1 in
imysql2)
mysql -uroot -p'QianFeng!123' -P 3307 -S /tmp/mysql2.sock
;;
# mysql1
imysql1)
mysql -uroot -p'QianFeng@123'
;;
# 启动
smysql2)
nohup /usr/local/mysql/bin/mysqld --defaults-file=/etc/my2.cnf --datadir=/data2/ --user=mysql &
;;
smysql1)
service mysqld start
;;
tmysql1)
service mysqld stop
;;
tmysql2)
mysqladmin -S /tmp/mysql2.sock -P 3307 -p'QianFeng!123' shutdown
;;
esac
# 修改密码
[root@mysql2 ~]# mysqladmin -uroot -p'sNW7Tlr??c%-' password 'QianFeng!123' -P 3307 -S /tmp/mysql2.sock
# 主库
[root@mysql1 ~]# mkdir -pv /data/binlog
[root@mysql1 ~]# chown -R mysql /data/binlog
[root@mysql1 ~]# cat /etc/my.cnf
server-id=1
log_bin=/data/binlog/mysql-bin.log #(注意mysql需要有该目录写权限, chown mysql binlog/)
expire_logs_days=3
max_binlog_size=100M
binlog_format=row #(指定binlog格式 有row mixed等3种格式)
max_allowed_packet=32M
[root@mysql1 ~]# systemctl restart mysqld
[root@mysql1 ~]# mysql -pQianFeng@123
mysql> grant replication slave,replication client on *.* to 'slave'@'%' identified by 'QianFeng@@123';
# 记录偏移量
mysql> show master status\G
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 458
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
mysql> set global event_scheduler=off;
mysql> FLUSH TABLES WITH READ LOCK;
(注意:在退出MySQL终端的时候都会隐式的执行unlock tables。也就是如果要让表锁定生效就必须一直保持对话。锁表之前确认mysql只剩下自己的操作)
# 另开一个终端,不要关闭已经上锁的mysql终端
[root@mysql1 ~]# mysqldump -R -E --default-character-set=utf8 -uroot -p'QianFeng@123' jspgou > data.sql
[root@mysql1 ~]# scp data.sql 10.3.131.238:/root/data.sql
# 两台从库
[root@mysql2 ~]# mkdir /{data,data2}/binlog
[root@mysql2 ~]# chown mysql /{data,data2}/binlog
# 修改配置文件
[root@mysql2 ~]# vim /etc/my.cnf
event_scheduler=0 #关闭event归档,0为关闭
#slave
server-id=2
#replicate-rewrite-db=dbname1->dbname1 同步单个库使用
#replicate-do-db=dbname1 同步单个库使用
log_bin=/data/binlog/mysql-bin.log
relay_log=/data/binlog/mysql-relay-bin.log
expire_logs_days=3
max_binlog_size=100M
binlog_format=row
slave-net-timeout=60
max_allowed_packet=32M
log_bin_trust_function_creators=1
[root@mysql2 ~]# vim /etc/my2.cnf
event_scheduler=0 #关闭event归档,0为关闭
#slave
server-id=3
#replicate-rewrite-db=dbname1->dbname1 同步单个库使用
#replicate-do-db=dbname1 同步单个库使用
log_bin=/data2/binlog/mysql-bin.log
relay_log=/data2/binlog/mysql-relay-bin.log
expire_logs_days=3
max_binlog_size=100M
binlog_format=row
slave-net-timeout=60
max_allowed_packet=32M
log_bin_trust_function_creators=1
[root@mysql2 ~]# mod-mysql tmysql1
[root@mysql2 ~]# mod-mysql tmysql2
[root@mysql2 ~]# mod-mysql smysql1
[root@mysql2 ~]# mod-mysql smysql2
[root@mysql2 ~]# mod-mysql imysql1
mysql> create database jspgou default charset=utf8;
mysql> use jspgou
mysql> source /root/data.sql
mysql> edit
change master to
master_host='10.3.131.239',
master_user='slave',
master_password='QianFeng@@123',
master_log_file='mysql-bin.000001',
master_log_pos=458;
[root@mysql2 ~]# mod-mysql imysql2
mysql> create database jspgou default charset=utf8;
mysql> use jspgou
mysql> source /root/data.sql
mysql> edit
change master to
master_host='10.3.131.239',
master_user='slave',
master_password='QianFeng@@123',
master_log_file='mysql-bin.000001',
master_log_pos=458;
# 检查两台同步情况
mysql> start slave;
mysql> show slave status\G
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ao8VvmxI-1577026511141)(C:\Users\newrain\AppData\Roaming\Typora\typora-user-images\1576831880149.png)]
mycat ip 10.3.131.244
# 环境部署
将jdk上传到服务器中,
[root@mycat ~]# tar xf jdk-7u67-linux-x64.tar.gz -C /usr/local/
[root@mycat ~]# cd /usr/local/
[root@mycat local]# mv jdk1.7.0_67 java
设置环境变量
[root@mycat local]# vim /etc/profile.d/java.sh #添加如下内容,
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[root@mycat local]# source /etc/profile.d/java.sh
下载
[root@mycat ~]# wget http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
解压
[root@mycat ~]# tar xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz -C /usr/local/
#检测java
[root@mycat ~]# java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
# 修改tomcat 配置文件
[root@mycat ~]# cat /usr/local/mycat/conf/server.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
<user name="root" defaultAccount="true">
<property name="password">QianFeng@1234</property>
<property name="schemas">jspgou</property>
</user>
</mycat:server>
[root@mycat ~]# cat /usr/local/mycat/conf/schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="jspgou" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
</schema>
<dataNode name="dn1" dataHost="localhost1" database="jspgou" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="10.3.131.239:3306" user="mycat"
password="QianFeng@123">
<!-- can have multi read hosts -->
<readHost host="hostS2" url="10.3.131.238:3306" user="mycat" password="QianFeng@123" />
<readHost host="hostS3" url="10.3.131.238:3307" user="mycat" password="QianFeng@123" />
</writeHost>
</dataHost>
</mycat:schema>
# 启动mycat
[root@mycat ~]# /usr/local/mycat/bin/mycat
[root@mycat ~]# jps
1796 WrapperSimpleApp
1996 Jps
[root@mycat conf]# mysql -uroot -p'QianFeng@1234' -h 10.3.131.244 -P 8066
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.29-mycat-1.6.5-release-20180122220033 MyCat Server (OpenCloundDB)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> show databases;
+----------+
| DATABASE |
+----------+
| jspgou |
+----------+
1 row in set (0.01 sec)
MySQL [(none)]> use jspgou
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MySQL [jspgou]> show tables;
。。。。
104 rows in set (0.01 sec)
# 完成
# 修改tomcat 的数据库配置
# 两台tomcat 都执行
[root@tomcat local]# sed -i 's#10.3.131.239#10.3.131.244#' tomcat/webapps/ROOT/WEB-INF/config/jdbc.properties
[root@tomcat local]# sed -i 's#10.3.131.239#10.3.131.244#' tomcat1/webapps/ROOT/WEB-INF/config/jdbc.properties
[root@tomcat local]# sed -i 's#10.3.131.239#10.3.131.244#' tomcat2/webapps/ROOT/WEB-INF/config/jdbc.properties
[root@tomcat local]# sed -i 's#10.3.131.239#10.3.131.244#' tomcat3/webapps/ROOT/WEB-INF/config/jdbc.properties
重启tomcat
[root@tomcat local]# sh /usr/local/re-tomcat.sh stop
[root@tomcat local]# sh /usr/local/re-tomcat.sh start
nginx---tomcat 4实例 mysql 从
前端 lvs --- ---mycat--- mysql 主
nginx---tomcat 4实例 mysql 从
# 账号密码信息
lvs dip 10.3.131.76 vip 10.3.131.235
nginx 1 ip 10.3.131.231
nginx 2 ip 10.3.131.230
mysql 主 ip 10.3.131.239 用户 slave QianFeng@@123(主从) 用户root QianFeng@123 用户 mycat QianFeng@123
mysql 从 ip 10.3.131.238 用户m1上 root QianFeng@123 m2上 root QianFeng!123 mycat QianFeng@123(相同)
mycat ip 10.3.131.244 用户 root QianFeng@1234
tomcat 1 ip 10.3.131.236 端口 8081/8082/8083/8084
tomcat 2 ip 10.3.131.237 端口 8081/8082/8083/8084
## ssh登录账号root 密码为1
# 控制方式
lvs systemctl start ipvsadm
nginx /usr/local/nginx/sbin/nginx
tomcat /usr/local/re-tomcat.sh start|stop
mycat /usr/local/mycat/bin/mycat start|stop
mysql主 systemctl start mysqld
mysql从 mod-mysql imysql1|imysql2# 进入mysql客户端
mod-mysql smysql1|smysql2 # 启动mysql
mod-mysql tmysql1|tmysql2 # 停止myqsl 1和2是两个实例 mod-mysql是启动脚本
数据目录 /data /data2 配置文件 /etc/my.cnf /etc/my2.cnf
# 测试页面
http://10.3.131.235/jeeadmin/jspgou/index.do#/login