Skip to main content

儒来部署步骤-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

 

中国:

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\

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

 

越南:

ln -sf /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime &&\

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

 

埃塞俄比亚

ln -sf /usr/share/zoneinfo/Africa/Addis_Ababa /etc/localtime &&\

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: 选中内容,确认

 

安装dockerdocker-composerulr-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

 

2cpus 改为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

 

2cpus 改为1.4

%s/'2.8'/'1.4'/gc

3cpus  改为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部分内容

 

如何是2CPU

%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_FILEMASTER_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;