儒来部署步骤-20250514
儒来平台部署
部署前全局系统优化
ubuntu18.04更换阿里云源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat > /etc/apt/sources.list << EOF
deb https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
EOF
apt update && apt upgrade -y
sudo hostnamectl set-hostname rulr-1
中国:
apt-get install ntpdate -y &&\
if ! crontab -l | grep "ntpdate" &>/dev/null; then
(echo "*/5 * * * * /usr/sbin/ntpdate ntp.aliyun.com >/dev/null 2>&1"; crontab -l) | crontab
fi
越南:
apt-get install ntpdate -y &&\
if ! crontab -l | grep "ntpdate" &>/dev/null; then
(echo "*/5 * * * * /usr/sbin/ntpdate ntp.aliyun.com >/dev/null 2>&1"; crontab -l) | crontab
fi
埃塞俄比亚
apt-get install ntpdate -y &&\
if ! crontab -l | grep "ntpdate" &>/dev/null; then
(echo "*/5 * * * * /usr/sbin/ntpdate ntp.aliyun.com >/dev/null 2>&1"; crontab -l) | crontab
fi
cat >> /etc/sysctl.conf << EOF
kernel.pid_max = 4194303
#net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_tw_buckets = 20480
net.ipv4.tcp_max_syn_backlog = 20480
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_fin_timeout = 20
vm.swappiness = 0
net.core.somaxconn = 20480
vm.overcommit_memory = 1
net.core.rmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_default = 262144
net.core.wmem_max = 16777216
net.ipv4.tcp_wmem = 4096 131072 1048576
net.ipv4.tcp_rmem = 4096 131072 1048576
net.ipv4.tcp_mem = 786432 1048576 1572864
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_fastopen = 3
fs.aio-max-nr = 1048576
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
EOF
sysctl -p
cat >> /etc/security/limits.conf << EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
root soft nproc 65535
root hard nproc 65535
root soft nofile 65535
root hard nofile 65535
EOF
su -
ulimit -n
# 查看系统语言
echo $LANG
en_US.UTF-8
# 如果系统语言不是"en_US.UTF-8"时按下面的步骤进行修改,选中en_US.UTF-8 UTF-8
# dpkg-reconfigure locales
上下键: 连续内容上下移动光标 tab键: 不连续内容移动光标 space键: 选中内容,确认
安装docker、docker-compose(rulr-1 至 rulr-5)
上传 docker_debs_2021_Rulr6.zip
scp -P 53022 shuncomlog@shuncom.3322.org:/home/shuncomlog/rulr/docker_debs_2021_Rulr6.zip ./
sudo apt install -y unzip
unzip docker_debs_2021_Rulr6.zip &&\
cd docker_debs_2021_Rulr6 &&\
dpkg -i *.deb &&\
mv docker-compose-Linux-x86_64_1.29.2 /usr/bin/docker-compose &&\
chmod +x /usr/bin/docker-compose &&\
usermod -aG docker shuncom &&\
id shuncom &&\
docker -v &&\
docker-compose version
第一章、部署应用-1
rulr-1
sudo su
sudo docker network create --subnet=172.18.0.0/16 rulr-network &&\
sudo docker network ls
su - shuncom
scp -P 53022 -r shuncomlog@shuncom.3322.org:/home/shuncomlog/rulr/30.16/* ./
cd /home/shuncom
tar -zxvf servers-20250512.tar.gz
tar -zxvf www-20250512.tar.gz
mkdir -p /home/shuncom/log/dubbo/registry/cache &&\
mkdir -p /home/shuncom/log/nginx &&\
mkdir -p /home/shuncom/log/shuncom-oauth2-server/tomcat &&\
mkdir -p /home/shuncom/log/web-maintain &&\
mkdir -p /home/shuncom/log/web-things &&\
mkdir -p /home/shuncom/log/web-user &&\
mkdir -p /home/shuncom/log/model-proxy-server
cat > /home/shuncom/compose/.env << EOF
RULR_MYSQL=172.17.20.17
RULR_ZOOKEEPER=172.17.20.15
RULR_REDIS=172.17.20.15
RULR_INFLUXDB=172.17.20.16
RULR_RABBITMQ=172.17.20.15
HOSTIP=172.17.20.11
WEB_HOST=172.17.20.11
WEB_PORT=443
RULR_1=172.17.20.11
RULR_3=172.17.20.13
RULR_4=172.17.20.14
JAVA_IMAGE=openjdk:8-alpine3.9-tini
DB_USER=shuncom
EOF
sudo chown -R root.root /home/shuncom/www &&\
sudo chown -R shuncom.shuncom /home/shuncom/www/rulr
2核cpus 改为1.4
vi docker-compose.yml
%s/'2.8'/'1.4'/gc
rulr-model-proxy-server.jar包从rulr-2获取
在rulr-2执行:
scp -r /home/shuncom/servers/model-proxy-server/ shuncom@172.17.20.11:/home/shuncom/servers/
docker image load -i nginx_1.20.2.tar &&\
docker image load -i openjdk_8-alpine3.9.tar &&\
docker image load -i openjdk_8-alpine3.9-tini.tar
docker-compose build &&\
docker-compose up -d &&\
docker-compose ps
脚本路径:本地部署\RulrDeploy\ServiceComponents\ops_tools
执行 installCleanLog31.sh 安装清理逻辑
执行rotateNginxLog31.sh 安装清理nginx日志配置
第二章、部署应用-2
rulr-2
sudo su
docker network create --subnet=172.18.0.0/24 rulr-network &&\
docker network ls
su - shuncom
scp -P 53022 -r shuncomlog@shuncom.3322.org:/home/shuncomlog/rulr/30.17/* ./
cd /home/shuncom/
tar -zxvf servers-20250512.tar.gz
mkdir -p /home/shuncom/log/dtumt-connect &&\
mkdir -p /home/shuncom/log/engine-action-server &&\
mkdir -p /home/shuncom/log/engine-alarm-server &&\
mkdir -p /home/shuncom/log/engine-timing-server &&\
mkdir -p /home/shuncom/log/engine-trigger-server &&\
mkdir -p /home/shuncom/log/model-converter-server &&\
mkdir -p /home/shuncom/log/model-event-server &&\
mkdir -p /home/shuncom/log/model-proxy-server &&\
mkdir -p /home/shuncom/log/model-task-schedule
cat > /home/shuncom/compose/.env << EOF
RULR_MYSQL=172.17.20.17
RULR_ZOOKEEPER=172.17.20.15
RULR_REDIS=172.17.20.15
RULR_INFLUXDB=172.17.20.16
RULR_RABBITMQ=172.17.20.15
HOSTIP=172.17.20.12
WEB_HOST=172.17.20.11
WEB_PORT=443
RULR_1=172.17.20.11
RULR_3=172.17.20.13
RULR_4=172.17.20.14
JAVA_IMAGE=openjdk:8-alpine3.9-tini
DB_USER=shuncom
EOF
2核cpus 改为1.4
%s/'2.8'/'1.4'/gc
3核cpus 改为1.5
%s/'3'/'1.5'/gc
cd /home/shuncom/compose/ &&\
docker load -i openjdk_8-ffmpeg.tar &&\
docker load -i openjdk_8-alpine3.9.tar &&\
docker load -i openjdk_8-alpine3.9-tini.tar &&\
docker-compose build &&\
docker-compose up -d &&\
docker-compose ps
su - shuncom
chmod +x /home/shuncom/ops_tools/*
/home/shuncom/ops_tools/installCleanLog31.sh
第三章、部署应用-3
rulr-3
sudo su
docker network create --subnet=172.18.0.0/16 rulr-network
docker network ls
su - shuncom
scp -P 53022 -r shuncomlog@shuncom.3322.org:/home/shuncomlog/rulr/30.18/* ./
cd /home/shuncom/
tar -zxvf servers-20250512.tar.gz
tar -zxvf www-20250512.tar.gz
su - shuncom
mkdir -p /home/shuncom/log/advice-server &&\
mkdir -p /home/shuncom/log/batch-proxy-server &&\
mkdir -p /home/shuncom/log/dtumt-connect &&\
mkdir -p /home/shuncom/log/dubbo/registry/cache &&\
mkdir -p /home/shuncom/log/model-data-resolver &&\
mkdir -p /home/shuncom/log/model-task-batch &&\
mkdir -p /home/shuncom/log/nginx &&\
mkdir -p /home/shuncom/log/pph-proxy-handler/tomcat &&\
mkdir -p /home/shuncom/log/push-tripartite &&\
mkdir -p /home/shuncom/log/shuncom-onbon-server
cat > /home/shuncom/compose/.env << EOF
RULR_MYSQL=172.17.20.17
RULR_ZOOKEEPER=172.17.20.15
RULR_REDIS=172.17.20.15
RULR_INFLUXDB=172.17.20.16
RULR_RABBITMQ=172.17.20.15
HOSTIP=172.17.20.13
WEB_HOST=172.17.20.11
WEB_PORT=443
RULR_1=172.17.20.11
RULR_3=172.17.20.13
RULR_4=172.17.20.14
JAVA_IMAGE=openjdk:8-alpine3.9-tini
DB_USER=shuncom
EOF
%s/'2.8'/'1.4'/gc
cd /home/shuncom/compose/ &&\
docker image load -i nginx_1.20.2.tar &&\
docker image load -i openjdk_8-alpine3.9.tar &&\
docker image load -i openjdk_8-alpine3.9-tini.tar &&\
docker-compose build &&\
docker-compose up -d &&\
docker-compose ps
su - shuncom
chmod +x /home/shuncom/ops_tools/*
/home/shuncom/ops_tools/installCleanLog31.sh
sudo /home/shuncom/ops_tools/rotateNginxLog31.sh
第四章、部署应用-4
rulr-4
sudo su
docker network create --subnet=172.18.0.0/16 rulr-network &&\
docker network ls
su - shuncom
应用资源来自 192.168.30.41
scp -P 53022 -r shuncomlog@shuncom.3322.org:/home/shuncomlog/rulr/30.41/* ./
cd /home/shuncom/
tar -zxvf servers-20250512.tar.gz
mkdir -p /home/shuncom/log/dtumt-connect &&\
mkdir -p /home/shuncom/log/dtumt-handler &&\
mkdir -p /home/shuncom/log/dtumt-transmission &&\
mkdir -p /home/shuncom/log/dubbo/registry/cache &&\
mkdir -p /home/shuncom/log/gateway-connect &&\
mkdir -p /home/shuncom/log/gateway-handler &&\
mkdir -p /home/shuncom/log/gateway-proxy-handler &&\
mkdir -p /home/shuncom/log/light-connect-gateway &&\
mkdir -p /home/shuncom/log/light-connect-tcp &&\
mkdir -p /home/shuncom/log/light-proxy-handler &&\
mkdir -p /home/shuncom/log/mt-event-server &&\
mkdir -p /home/shuncom/log/nginx &&\
mkdir -p /home/shuncom/log/tripartite-connect &&\
mkdir -p /home/shuncom/log/tripartite-connect-sensor
cat > /home/shuncom/compose/.env << EOF
RULR_MYSQL=172.17.20.17
RULR_ZOOKEEPER=172.17.20.15
RULR_REDIS=172.17.20.15
RULR_INFLUXDB=172.17.20.16
RULR_RABBITMQ=172.17.20.15
HOSTIP=172.17.20.14
WEB_HOST=172.17.20.11
WEB_PORT=443
RULR_1=172.17.20.11
RULR_3=172.17.20.13
RULR_4=172.17.20.14
JAVA_IMAGE=openjdk:8-alpine3.9-tini
DB_USER=shuncom
EOF
cd /home/shuncom/compose/ &&\
docker image load -i nginx-tcp-24.08.19.tar &&\
docker image load -i nginx-tcp.tar &&\
docker image load -i openjdk_8-alpine3.9.tar &&\
docker image load -i openjdk_8-alpine3.9-tini.tar
#如果是2核做如下修改:
vi docker-compose.yml
%s/'2.8'/'1.4'/gc
cp docker-compose.yml docker-compose.yml.bak
vi docker-compose.yml
修改docker-compose.yml,先运行 set paste
# nginx-tcp:
# image: nginx-tcp
# build:
# context: ./
# dockerfile: NginxTcp
%s/image: nginx-tcp/image: nginx-tcp:24.08.19/gc
docker-compose build &&\
docker-compose up -d &&\
docker-compose ps
脚本路径:本地部署\RulrDeploy\ServiceComponents\ops_tools
执行./installCleanLog31.sh 安装清理逻辑
执行sudo ./rotateNginxLog31.sh 安装清理nginx日志配置
第五章、部署中间件
rulr-5
sudo su
docker network create --subnet=172.18.0.0/16 rulr-network &&\
docker network ls
2 创建应用目录
su - shuncom
scp -P 53022 -r shuncomlog@shuncom.3322.org:/home/shuncomlog/rulr/rediszoorabbitmq/* ./
mkdir -p /home/shuncom/rulr/conf/redis &&\
mkdir -p /home/shuncom/logs/rabbitmq &&\
mkdir -p /home/shuncom/rulr/conf/rabbitmq &&\
chmod 757 /home/shuncom/logs/rabbitmq &&\
chmod 757 /home/shuncom/rulr/conf/rabbitmq &&\
mkdir -p /home/shuncom/rulr/conf/zookeeper &&\
mkdir -p /home/shuncom/compose
cat > /home/shuncom/compose/.env << EOF
RULR_MYSQL=172.17.20.17
RULR_ZOOKEEPER=172.17.20.15
RULR_REDIS=172.17.20.15
RULR_INFLUXDB=172.17.20.16
RULR_RABBITMQ=172.17.20.15
HOSTIP=172.17.20.15
WEB_HOST=172.17.20.11
WEB_PORT=443
RULR_1=172.17.20.11
RULR_3=172.17.20.13
RULR_4=172.17.20.14
JAVA_IMAGE=openjdk:8-alpine3.9-tini
DB_USER=shuncom
EOF
3 上传应用配置文件
cd /home/shuncom/compose &&\
cp redis-5.0.14/6379.conf ../rulr/conf/redis/ &&\
cp rabbitmq-3.7.26/rabbitmq.conf ../rulr/conf/rabbitmq/ &&\
chmod 667 /home/shuncom/rulr/conf/rabbitmq/rabbitmq.conf &&\
cp zookeeper-3.5.8/log4j.properties ../rulr/conf/zookeeper/ &&\
cp zookeeper-3.5.8/zoo.cfg ../rulr/conf/zookeeper/
(4) compose
# 配置文件上传(docker-compose.yml)
# cd /home/shuncom/compose
docker image load -i rabbitmq_3.7.26.tar &&\
docker image load -i redis_5.0.14.tar &&\
docker image load -i zookeeper_3.5.8.tar
cp docker-compose.yml docker-compose.yml.bak
vi docker-compose.yml
删除mysql infuxdb部分内容
如何是2核CPU
%s/'2.8'/'1.4'/gc
#如果内存小于8G,这里要修改一下把4096改为2048
vi /home/shuncom/rulr/conf/rabbitmq/rabbitmq.conf
vm_memory_high_watermark.absolute=2048MB
%s/4096/2048/gc
4 启动应用服务并查看服务状态
cd /home/shuncom/compose &&\
docker-compose up -d &&\
docker-compose ps
5 rabbitmq开启web管理
docker exec -it rulr-rabbit bash
rabbitmq-plugins enable rabbitmq_management
exit
6 应用访问测试
(1) 访问redis
docker exec -it rulr-redis bash
redis-cli -h 127.0.0.1 -a 'sz_clighting' -p 6379
127.0.0.1:6379> CONFIG get maxclients
1) "maxclients"
2) "10000"
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> exit
root@f39b51dab023:/data# redis-cli --version
redis-cli 5.0.14
root@f39b51dab023:/data# exit
(2) 访问rabbitmq
URL: http://172.17.20.15:15672/
Username: shuncom_mq
Password: sz_clighting_mq
需要开启WEB管理。可通过以下方式(查看服务状态):
docker exec -it rulr-rabbit rabbitmqctl status
(3) 访问zookeeper
docker exec -it rulr-zookeeper bash
zkCli.sh -server 127.0.0.1:2181
[zk: 127.0.0.1:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: 127.0.0.1:2181(CONNECTED) 1] quit
root@2ad68fbb302e:/apache-zookeeper-3.5.8-bin# exit
第六章、部署InfluxDB
rulr-6
sudo su
1 下载influxdb软件包
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.10_linux_amd64.tar.gz
scp -P 53022 -r shuncomlog@shuncom.3322.org:/home/shuncomlog/rulr/influxdb/influxdb-1.8.10_linux_amd64.tar.gz ./
2 安装influxdb
tar -zxvf influxdb-1.8.10_linux_amd64.tar.gz &&\
mv influxdb-1.8.10-1 influxdb &&\
useradd -M -s /usr/sbin/nologin influxdb &&\
id influxdb
uid=1601(influxdb) gid=1601(influxdb) groups=1601(influxdb)
3 配置influxdb配置文件
cat > /home/shuncom/influxdb/etc/influxdb/influxdb.conf << EOF
reporting-disabled = false
bind-address = "127.0.0.1:8088"
[meta]
dir = "/home/shuncom/influxdb/var/lib/influxdb/meta"
[data]
dir = "/home/shuncom/influxdb/var/lib/influxdb/data"
wal-dir = "/home/shuncom/influxdb/var/lib/influxdb/wal"
series-id-set-cache-size = 100
[coordinator]
[retention]
[shard-precreation]
[monitor]
[http]
enabled = true
bind-address = ":8086"
auth-enabled = false
[logging]
[subscriber]
[[graphite]]
[[collectd]]
[[opentsdb]]
[[udp]]
[continuous_queries]
[tls]
EOF
4 将InfluxDB服务加入systemd
cat > /lib/systemd/system/influxdb.service << EOF
[Unit]
Description=InfluxDB is an open-source, distributed, time series database
Documentation=https://docs.influxdata.com/influxdb/
After=network-online.target
[Service]
User=influxdb
Group=influxdb
LimitNOFILE=65536
ExecStart=/home/shuncom/influxdb/usr/bin/influxd -config /home/shuncom/influxdb/etc/influxdb/influxdb.conf \$INFLUXD_OPTS
KillMode=control-group
Restart=on-failure
RestartSec=2s
[Install]
WantedBy=multi-user.target
Alias=influxdb.service
EOF
5 设置InfluxDB日志
cat > /etc/rsyslog.d/influxdb.conf << EOF
### InfluxDB Rules ###
if \$programname == 'influxd' then {
action(type="omfile" file="/home/shuncom/influxdb/var/log/influxdb/influxd.log")
stop
}
EOF
# 重启rsyslog服务
systemctl restart rsyslog.service
# 修改配置文件并加入系统定时日志切割任务
cat > /home/shuncom/influxdb/etc/logrotate.d/influxdb << EOF
/home/shuncom/influxdb/var/log/influxdb/influxd.log {
daily
rotate 7
missingok
dateext
copytruncate
compress
}
EOF
chown -R influxdb.influxdb /home/shuncom/influxdb/ &&\
chmod 757 /home/shuncom/influxdb/var/log/influxdb/
6 启动InfluxDB
systemctl daemon-reload &&\
systemctl start influxdb.service &&\
systemctl enable influxdb.service &&\
systemctl status influxdb.service
cat >> ~/.bashrc << EOF
export PATH=/home/shuncom/influxdb/usr/bin:\$PATH
EOF
source ~/.bashrc
su - shuncom
cat >> ~/.bashrc << EOF
export PATH=/home/shuncom/influxdb/usr/bin:\$PATH
EOF
source ~/.bashrc
exit
influx -version
InfluxDB shell version: 1.8.10
7 InfluxDB管理员创建
(1) 创建管理员
influx
show users
create user root with password 'root_influxdb' with all privileges
show users
exit
(2) 开启influxdb认证
修改influxdb.conf配置文件,
sudo vi /home/shuncom/influxdb/etc/influxdb/influxdb.conf
将[http]标签下"auth-enabled = false"
改为"auth-enabled = true"
(3) 重启InfluxDB服务
systemctl restart influxdb.service
(4) InfluxDB认证登录
influx -host 127.0.0.1 -port 8086 -username root -password 'root_influxdb'
create database rulr_things;
2 设置库数据保留规则
use rulr_things;
CREATE RETENTION POLICY three_days ON rulr_things DURATION 3d REPLICATION 1;
CREATE RETENTION POLICY seven_days ON rulr_things DURATION 7d REPLICATION 1;
CREATE RETENTION POLICY half_year ON rulr_things DURATION 180d REPLICATION 1;
CREATE RETENTION POLICY one_year ON rulr_things DURATION 365d REPLICATION 1;
show retention policies;
3 创建用户
create user shuncom with password 'shuncom_influxdb_passwd';
grant all privileges on rulr_things to shuncom;
show grants for shuncom;
exit
部署Mysql 延迟从库步骤看第七章:
第七章、部署Mysql主库
rulr-7
sudo su
1 下载mysql软件包
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
scp -P 53022 -r shuncomlog@shuncom.3322.org:/home/shuncomlog/rulr/mysql/* ./
2 安装mysql
(1) 安装mysql依赖包
apt install libaio1 -y
(2) 解压mysql安装包
tar -xf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz &&\
mv mysql-8.0.20-linux-glibc2.12-x86_64/ /home/shuncom/mysql/
(3) 创建mysql用户
groupadd -g 1600 mysql &&\
useradd -g mysql -u 1600 -M -s /sbin/nologin mysql &&\
id mysql
uid=1600(mysql) gid=1600(mysql) groups=1600(mysql)
(4) 创建存放数据库文件的目录并赋予mysql安装目录的属主和属组都是mysql
mkdir -p /home/shuncom/mysql/data/ &&\
chown -R mysql.mysql /home/shuncom/mysql/
3 配置mysql my.cnf文件
cat > /etc/my.cnf << EOF
[client]
port = 3306
default-character-set = utf8mb4
socket = /home/shuncom/mysql/data/mysql.sock
[mysql]
no-auto-rehash
[mysqld]
default-time_zone = '+00:00'
user = mysql
port = 3306
basedir = /home/shuncom/mysql
datadir = /home/shuncom/mysql/data
socket = /home/shuncom/mysql/data/mysql.sock
bind-address = 0.0.0.0
pid-file = /home/shuncom/mysql/data/mysqld.pid
character-set-server = utf8mb4
collation-server = utf8mb4_0900_ai_ci
log-error = /home/shuncom/mysql/data/mysqld.log
slow_query_log = ON
long_query_time = 2
slow_query_log_file = /home/shuncom/mysql/data/mysql-slow.log
max_connections = 1024
open_files_limit = 65535
innodb_buffer_pool_size = 2G
innodb_flush_log_at_trx_commit = 2
innodb_log_file_size = 256M
transaction_isolation = READ-UNCOMMITTED
# transaction_isolation = READ-COMMITTE
default-storage-engine = innodb
innodb_file_per_table = on
innodb_flush_method = O_DIRECT
interactive_timeout = 1800
wait_timeout = 1800
innodb_open_files=1500
innodb_io_capacity=5000
innodb_buffer_pool_instances=4
innodb_autoextend_increment=64
innodb_purge_threads=1
innodb_purge_batch_size=150
innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_concurrency_tickets=2500
explicit_defaults_for_timestamp = 1
skip-name-resolve
lower_case_table_names = 1
server-id = 1
skip-log-bin
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[mysqldump]
quick
max_allowed_packet = 32M
EOF
4 初始化mysql 数据库
/home/shuncom/mysql/bin/mysqld --initialize --user=mysql --basedir=/home/shuncom/mysql --datadir=/home/shuncom/mysql/data
5 将mysql服务加入到systemd
cat > /lib/systemd/system/mysqld.service << EOF
[Unit]
Description=MySQL Server 8.0.20
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/home/shuncom/mysql/data/mysqld.pid
TimeoutSec=0
PermissionsStartOnly=true
# ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd
ExecStart=/home/shuncom/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize --pid-file=/home/shuncom/mysql/data/mysqld.pid \$MYSQLD_OPTS
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE = 65535
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
EOF
6 启动mysql数据库
systemctl daemon-reload &&\
systemctl start mysqld.service &&\
systemctl enable mysqld.service &&\
systemctl status mysqld.service
cat >> ~/.bashrc << EOF
export PATH=/home/shuncom/mysql/bin:\$PATH
EOF
source ~/.bashrc
su - shuncom
cat >> ~/.bashrc << EOF
export PATH=/home/shuncom/mysql/bin:\$PATH
EOF
source ~/.bashrc
exit
mysql --version
mysql Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)
7 修改mysql数据库密码
grep 'temporary password' /home/shuncom/mysql/data/mysqld.log
2022-09-06T07:24:22.857237Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: x2z?tj79y,dI
mysql -uroot -p'tji?RNa1Ly9N'
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Sz_clighting';
flush privileges;
exit;
4.1 mysql导库,部署主从,先部署好了再做建库、导库
1 创建库、创建用户并赋权
mysql -u root -p'Sz_clighting'
CREATE DATABASE rulr_things DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
create user "shuncom"@"%" identified by "sh_clighting";
grant all on rulr_things.* to "shuncom"@"%";
exit
2 导入表结构和表数据
mkdir -p /home/shuncom/update_mysql/ &&\
chmod +x /home/shuncom/update_mysql/update_mysql.sh
2、如果初始化脚本低于当前部署版本,应用迁移工具(rulr-db-migrate_vx.x.x.jar)进行升级
(2) 部署jdk
tar -xzf jdk-8u251-linux-x64.tar.gz &&\
mv jdk1.8.0_251/ /usr/local/jdk/
cat >> ~/.bashrc << EOF
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=\$JAVA_HOME/lib/tools.jar:\$JAVA_HOME/jre/lib/rt.jar
export PATH=\$JAVA_HOME/bin:\$PATH
EOF
source ~/.bashrc
su - shuncom
cat >> ~/.bashrc << EOF
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=\$JAVA_HOME/lib/tools.jar:\$JAVA_HOME/jre/lib/rt.jar
export PATH=\$JAVA_HOME/bin:\$PATH
EOF
source ~/.bashrc
exit
(4) 查看jdk版本
java -version
java version "1.8.0_251"
Mysql 升级前查看 max_binlog_cache_size 大小,并记录值,否则有可能报销
mysql -u root -p'Sz_clighting'
show variables like "%max_binlog%";
3、如果 max_binlog_cache_size < 33554432
set global max_binlog_cache_size=33554432;
show variables like "%max_binlog%";
4、更新完成后,还原max_binlog_cache_size配置(如果有修改)
mysql -u root -p'Sz_clighting'
set global max_binlog_cache_size=8388608;
show variables like "%max_binlog%";
当前SQL导入与维护方式已更新!
1、执行初始化sql脚本
mysql -u shuncom -p'sh_clighting'
use rulr_things
source /home/shuncom/v3.11.11__aliyun_init_db_dump.sql
cd /home/shuncom/update_mysql
vi update_mysql.sh
修改初始版本(本例是v3.11.11),升级版本 v3.11.11
修改jdk路径 /usr/local/jdk/
保存退出
./update_mysql.sh
mkdir -p log/shuncom-db-migrate
第八章、Mysql主、从复制
1、主从节点开启log_bin,配置文件中移除 skip-log-bin 配置项
2、增加主从复制配置 [mysqld]
a、主节点
vi /etc/my.cnf
server-id = 1
log-bin = /home/shuncom/mysql/data/mysql-bin
binlog_cache_size = 4M
binlog_format = mixed
max_binlog_cache_size = 8M
max_binlog_size = 512M
expire_logs_days = 14
gtid_mode = ON
enforce_gtid_consistency = ON
重启mysql服务
systemctl restart mysqld.service
b、从节点
vi /etc/my.cnf
server-id = 2
slave-skip-errors=1007,1022,1050,1062,1169
relay-log=/home/shuncom/mysql/data/relay-log
max_relay_log_size=512M
relay-log-purge=ON
read-only
gtid_mode = ON
enforce_gtid_consistency = ON
重启mysql服务
systemctl restart mysqld.service
3、创建主从复制账户
a、以root登录主节点
mysql -u root -p'Sz_clighting'
b、创建复制用户(用户名、密码为示例),并授予权限
CREATE USER 'replicator'@'%' IDENTIFIED BY 'Passw0rd';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS\G; -- 获取 MASTER_LOG_FILE、MASTER_LOG_POS
4、从节点开启复制
a、以root用户登录从节点
mysql -u root -p'Sz_clighting'
b、开启复制
CHANGE MASTER TO
MASTER_HOST='172.17.20.17',
MASTER_PORT=3306,
MASTER_USER='replicator',
MASTER_PASSWORD='Passw0rd',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=868,
get_master_public_key=1;
CHANGE MASTER TO MASTER_DELAY = 3600;
START SLAVE;
SHOW SLAVE STATUS\G;
No Comments