基础工程搭建

Linux

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 修改虚拟机固定 ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" # dhcp 自动获取修改为 静态
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="dc48a286-077d-4d19-b6b9-b0eafe7b4899"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.0.101 # 指定的固定 ip
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.0.1 # 网关
DNS1=8.8.8.8 # DNS 服务器

// 重启网络
systemctl restart network.service

// 查看状态
firewall-cmd --state

// 停止防火墙
systemctl stop firewalld.service

// 禁止防火墙开机自启
systemctl disable firewalld.service

image-20221119001035153

Cloud 组件以及 Seata

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
## 安装 Java
sudo yum -y install epel-release
sudo rm -f /var/run/yum.pid # 出现上图问题使用
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel jq vim

# 查看 并 切换版本
sudo alternatives --config java

java -version

/**
* java -jar xxx.jar # 这个命令会锁定命令窗口,当窗口关闭时,程序也就自动退出了,所以需要让 jar 包后台运行
* nohup java -jar xxx.jar & # nohup 命令:忽略所有挂断信号,当窗口关闭时,程序仍然运行, & 符号:程序后台运行
* # xxx.log 就是指定的输出文件,如果不指定,默认在 jar 包所在目录,创建 nohup.out 文件
* nohup java -jar xxx.jar >xxx.log & # >xxx.file:将输出重定向到 xxx.file 文件,也就是将内容输出到 xxx.file 文件中
*/

# 创建文件夹
mkdir -p /mydata/cloud
# 进入目录 并 将相应软件上传至该目录
cd /mydata/cloud/

# 启动 nacos
cd /mydata/cloud/nacos/bin
# -bash: ./startup.sh: 权限不足
chmod u+x *.sh # 开启权限
./startup.sh -m standalone # 单机方式启动, 集群启动会报错启动不起来

# 登录地址, ip 虚拟机的 ip
http://ip:8848/nacos

# 启动 sentinel
cd /mydata/cloud
nohup java -jar sentinel-dashboard-1.8.2.jar >sentinel.log &

# 登录地址, ip 虚拟机的 ip
http://ip:8080/#/login

# 启动 zipkin
cd /mydata/cloud
nohup java -jar zipkin-server-2.20.2-exec.jar >zipkin.log &

# 登录地址, ip 虚拟机的 ip
http://ip:9411/zipkin/

## Seata
mkdir -p /mydata/seata

# 进入目录 并 将相应软件上传至该目录
cd /mydata/seata

## 启动 Seata
cd /mydata/seata/seata/seata-server-1.4.2/bin/
nohup sh seata-server.sh -p 8091 -m file &> seata.log &

Docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 卸载系统之前的 docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

// 安装 Docker-CE
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

// 设置 docker repo 的 yum 源, 此处是阿里源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

// 安装 docker, 以及docker-cli
sudo yum install docker-ce docker-ce-cli containerd.io

// 启动 docker
sudo systemctl start docker

// 查看 docker 状态
sudo systemctl status docker

// 设置 docker 开机自启
sudo systemctl enable docker

// 重启docker
sudo systemctl restart docker

elasticsearch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 下载 es,下载过慢可以尝试 ctrl + c(win) 或 control + c(mac)取消重新下载
docker pull elasticsearch:7.6.2

// 启动 es
docker run --name elasticsearch7.6.2 -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" --net host -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.6.2

// 下载 ik 分词器
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip

// 创建目录
mkdir -p /mydata/es

// 进入目录
cd /mydata/es/

// 上传ik分词器并解压
unzip elasticsearch-analysis-ik-7.6.2.zip -d ik-analyzer

// 拷贝
docker cp ./ik-analyzer elasticsearch7.6.2:/usr/share/elasticsearch/plugins

// 重启 es
docker restart elasticsearch7.6.2

// 设置开机自启
docker update elasticsearch7.6.2 --restart=always

kibana

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 下载 kibana
docker pull kibana:7.6.2

// 启动
docker run --name kibana7.6.2 -p 5601:5601 -d kibana:7.6.2

// 进入容器内部
docker exec -it kibana7.6.2 bash

// 设置 es 地址 以及中文
vi /opt/kibana/config/kibana.yml
elasticsearch.hosts: [ "http://ip:9200" ]
i18n.locale: "zh-CN"

// 退出
exit

// 重启 kibana
docker restart kibana7.6.2

// 设置开机自启
docker update kibana7.6.2 --restart=always

RabbitMQ

1
2
3
4
5
6
7
8
# 下载
docker pull rabbitmq:management

# 启动
docker run -d -p 5672:5672 -p 15672:15672 -p 25672:25672 --name rabbitmq rabbitmq:management

# 设置开机自启
docker update rabbitmq --restart=always

MySQL 8

卸载自带 MySQL

1
2
3
4
5
// CentOS7默认安装mariadb, 先执行查询
rpm -qa|grep mariadb

// 如果存在mariadb执行删除
rpm -e --nodeps mariadb-libs

安装 MySQL 8

1
2
// 由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限
chmod -R 777 /tmp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 进入该目录 并将软件上传 至 该目录
cd /opt

cd /opt/mysql

rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm
1
2
// 查看安装版本
mysqladmin --version
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// mysql 服务初始化. 安装成功后会生成一个密码, 我们可以通过这个密码进行连接
mysqld --initialize --user=mysql

// 启动 mysql 服务
systemctl start mysqld.service

// 查看密码
cat /var/log/mysqld.log

# 关闭:
systemctl stop mysqld.service
# 重启:
systemctl restart mysqld.service
# 查看状态:
systemctl status mysqld.service

修改初始密码

1
2
// 首次登陆 mysql
mysql -hlocalhost -P3306 -uroot -p 回车,然后录入初始化密码

1
2
// 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

开启远程连接

1
2
// 默认情况下,mysql不允许远程连接。只允许localhost连接
select host,user,select_priv,insert_priv from mysql.user;

修改 root 账户的 host 地址

1
2
3
4
5
// 登陆后进入 mysql 库中
use mysql;

// 修改 root 账户的 host 地址
update user set host = '%' where user ='root';

1
2
// 刷新, 并重新使用 可视化工具登陆
flush privileges;

Redis

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
cd /opt

# 安装gcc依赖
yum install -y gcc

# 下载并解压安装包
wget http://download.redis.io/releases/redis-6.0.8.tar.gz

tar xzf redis-6.0.8.tar.gz

cd /opt/redis-6.0.8

# 安装scl源
yum install centos-release-scl scl-utils-build

# 列出scl可用源
yum list all --enablerepo='centos-sclo-rh'

# 安装8版本的gcc、gcc-c++、gdb工具链(toolchian)
yum install -y devtoolset-8-toolchain

scl enable devtoolset-8 bash

gcc --version

# 安装并指定安装目录
make install PREFIX=/usr/local/redis

cd /usr/local/redis/bin/

# 从 redis 的源码目录中复制 redis.conf 到 redis 的安装目录
cp /opt/redis-6.0.8/redis.conf /usr/local/redis/bin/

# 修改配置文件
vim /usr/local/redis/bin/redis.conf
protected-mode no
# bind 127.0.0.1
daemonize yes

# 启动
./redis-server redis.conf

# 设置开机自启
vi /etc/systemd/system/redis.service
[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

systemctl daemon-reload

systemctl start redis.service

systemctl enable redis.service

# 创建 redis 命令软链接
ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis

# 服务操作命令
systemctl start redis.service #启动redis服务

systemctl stop redis.service #停止redis服务

systemctl restart redis.service #重新启动服务

systemctl status redis.service #查看服务当前状态

systemctl enable redis.service #设置开机自启动

systemctl disable redis.service #停止开机自启动

# 查看 redis 状态
systemctl status nginx.service

# 杀死 redis 重启 redis
pkill -9 redis
ps aux | grep redis
systemctl start redis

image-20221119012051222

Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
cd /opt

yum -y install gcc

yum -y install gcc-c++

wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz

tar -zxvf pcre-8.37.tar.gz

cd /opt/pcre-8.37/

./configure

make

make install

pcre-config --version

cd /opt

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

wget http://nginx.org/download/nginx-1.16.1.tar.gz

tar -zxvf nginx-1.16.1.tar.gz

cd /opt/nginx-1.16.1/

./configure

make && make install

cd /usr/local/nginx/sbin

.nginx

## 启动命令
cd /usr/local/nginx/sbin
./nginx

## 关闭命令
cd /usr/local/nginx/sbin
./nginx -s stop

## 重新加载命令
cd /usr/local/nginx/sbin
./nginx -s reload


vim /lib/systemd/system/nginx.service

/**
* [Unit]:服务的说明
* Description:描述服务
* After:描述服务类别
* [Service]服务运行参数的设置
* Type=forking是后台运行的形式
* ExecStart为服务的具体运行命令
* ExecReload为重启命令
* ExecStop为停止命令
* PrivateTmp=True表示给服务分配独立的临时空间
* 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
* [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
*/
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

# 设置开机自启
systemctl enable nginx.service

# 查看nginx状态
systemctl status nginx.service

# 杀死nginx重启nginx
pkill -9 nginx
ps aux | grep nginx
systemctl start nginx

image-20221119012013515