Linux常用命令及主流服务部署大全

目录

一、常用操作命令

1、目录操作

2、文件内容操作(查看日志,更改配置文件)

3、压缩和解压缩

4、更改文件权限 

5、远程操作另一个的Linux系统 

6、CentOS firewalld(防火墙)指令

6.1 查看firewalld状态

6.2 开启、重启、关闭firewalld服务

6.3 查询、开放、关闭firewalld端口

7、解决服务器时差问题

二、各服务部署命令

1、增加虚拟内存

2、JDK

2.1 删除系统自带的openjdk

2.2 安装jdk

2.3 删除jdk

3、Maven

4、Git

4.1 yum安装

4.2 从github上下载最新的源码编译后安装

5、Nginx

5.1 安装安装编译工具及库文件

5.2 安装 PCRE

5.3 安装Nginx

5.4 Nginx配置

6、MySQL(8.0+)

6.1 下载

6.2 解压

6.3 移动位置并重新命名(个人习惯)

6.4 创建mysql用户组和用户并修改权限

6.5 创建目录并赋予权限

6.6 配置my.cnf文件

6.7 初始化MySQL

6.8 修改默认密码

6.9 配置远程连接(Navicat可连接)

6.10  查看安装路径和安装环境是否正常

6.11  异常处理方案

7、Elasticsearch

7.1 Elasticsearch部署

7.1.1 下载

7.1.2 解压

7.1.3 创建用户、修改用户密码、赋权

7.1.4 修改内存配置文件 jvm.options

7.1.5 修改elasticsearch配置文件 elasticsearch.yml

7.1.6 修改配置文件 limits.conf

7.2 Elasticsearch中文分词器部署

7.2.1 下载

7.2.2 解压

7.2.3 切换安装目录,并用mvn打包

7.2.4 切换插件目录,并新建目录

7.2.5 在新建目录下,拷贝安装包并解压

7.3 启动Elasticsearch

7.4 Elasticsearch设置密码(一定要是root账户)

7.5 异常处理方案

8、Redis

8.1 下载、解压

8.2 编译

8.3 安装

8.4 拷贝及修改配置 

8.5 启动

8.6 检测Redis是够启动成功

8.7 查看、修改、认证、删除Redis密码

9、RocketMQ

9.1 下载

9.2 切换目录到rocketmq根目录,启动 Name Server 和 Broker

9.3 验证rocketmq功能正常(可选) 

9.3.1 验证生产消息正常

9.3.2 验证消费消息正常

9.4 停止

9.5 RocketMQ可视控制台Dashboard部署

9.5.1 安装

9.5.2 启动/停止

9.5.3 开启登录设置,并设置登录帐号和密码

10、PlumeLog

10.1 下载(推荐路径:/usr/local/)

10.2 解压

10.3 修改配置

10.4 启动

11、Jenkins

11.1 安装

11.2 启动

11.3 访问

12、Nacos

12.1 下载

12.2 解压

12.3 创建mysql数据库

12.4 修改数据库配置

12.5 启动

12.6  访问

12.7 异常处理方案

13、安装中文字体

13.1 先查看系统中已经安装的字体

13.2 安装字体


Linux 系统目录

├── bin -> usr/bin # 用于存放二进制命令
├── boot # 内核及引导系统程序所在的目录
├── dev # 所有设备文件的目录(如磁盘、光驱等)
├── etc # 配置文件默认路径、服务启动命令存放目录
├── home # 用户家目录,root用户为/root
├── lib -> usr/lib # 32位库文件存放目录
├── lib64 -> usr/lib64 # 64位库文件存放目录
├── media # 媒体文件存放目录
├── mnt # 临时挂载设备目录
├── opt # 自定义软件安装存放目录
├── proc # 进程及内核信息存放目录
├── root # Root用户家目录
├── run # 系统运行时产生临时文件,存放目录
├── sbin -> usr/sbin # 系统管理命令存放目录
├── srv # 服务启动之后需要访问的数据目录
├── sys # 系统使用目录
├── tmp # 临时文件目录
├── usr # 系统命令和帮助文件目录
└── var # 存放内容易变的文件的目录

一、常用操作命令

1、目录操作

  • 查询目录
pwd          查看当前工作目录
clear        清除屏幕
cd ~         当前用户目录
cd /         根目录
cd -         上一次访问的目录
cd ..        上一级目录
  • 查看目录内容
ll		查看当前目录下的内容(LL的小写,展示的结果详细,有时间,是否可读写等信息)
ls      查看当前目录下的内容(只展示出文件名或目录名)
  • 创建目录
mkdir aaa		在当前目录下创建aaa目录,相对路径;
mkdir ./bbb		在当前目录下创建bbb目录,相对路径;
mkdir /ccc		在根目录下创建ccc目录,绝对路径;
  • 递归创建目录
mkdir -p temp/nginx 
  • 搜索命令
find / -name 'b'		查询根目录下(包括子目录),名以b的目录和文件;
find / -name 'b*'		查询根目录下(包括子目录),名以b开头的目录和文件; 
find . -name 'b'		查询当前目录下(包括子目录),名以b的目录和文件;
  • 重命名
mv 原先目录 修改后的文件名     例:mv test.txt test1.txt
  • 剪切命令(有目录则剪切到指定目录下,没有则剪切为指定目录)
mv	/aaa /bbb		    将根目录下的aaa目录,移动到bbb目录下(假如没有bbb目录,则重命名为bbb);
mv	bbbb usr/bbb		将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为bbb;
mv	bbb usr/aaa			将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为aaa;
  • 复制目录
cp -r /testA /testB			  将/目录下的testA目录复制到/testB目录下,在/testB目录下的名称为testB
cp -r /testA /testB/testC	  将/目录下的testA目录复制到/testB目录下,且修改名为testC;
  • 强制删除指定目录
rm -rf /test	强制删除/目录下的test目录。如果test目录中还有子目录,也会被强制删除,不会提示;
  • 删除目录
rm -r /test		普通删除。会询问你是否删除每一个文件
rmdir test		删除空目录
  • 查看树状目录结构
tree test/

2、文件内容操作(查看日志,更改配置文件)

  • 修改文件内容
vim /usr/local/test.xml   	进入一般模式
i(按键)   		            进入插入模式(编辑模式)
ESC(按键)  		            退出
:wq 			            保存退出(shift+:调起输入框)
:q!			            不保存退出(shift+:调起输入框)(内容有更改)(强制退出,不保留更改内容)
:q				            不保存退出(shift+:调起输入框)(没有内容更改)
  • 文件内容的查看
cat test.txt		查看test.txt文件的最后一页内容;

more test.txt		从第一页开始查看test.txt文件内容,按回车键一行一行进行查看,按空格键一页一页进行查看,q退出;

less test.txt		从第一页开始查看test.txt文件内容,按回车键一行一行的看,按空格键一页一页的看,支持使用PageDown和PageUp翻页,q退出;

总结下more 和 less的区别:

1.less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示;

2.less不必读整个文件,加载速度会比more更快;

3.less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容;

4.less可以后退,more不能后退。

  • 实时查看文件后几行(实时查看日志)
tail -f test.txt	查看test.txt文件的后10行内容;
  • 前后几行查看
head test.txt			查看test.txt文件的前10行内容;
tail -f test.txt		查看test.txt文件的后10行内容;
head -n 7 test.txt		查看test.txt文件的前7行内容;
tail -n 7 test.txt		查看test.txt文件的后7行内容;
  • 文件内部搜索指定的内容
grep under 123.txt			在123.txt文件中搜索under字符串,大小写敏感,显示行;
grep -n under 123.txt		在123.txt文件中搜索under字符串,大小写敏感,显示行及行号;
grep -v under 123.txt		在123.txt文件中搜索under字符串,大小写敏感,显示没搜索到的行;
grep -i under 123.txt		在123.txt文件中搜索under字符串,大小写敏感,显示行;
grep -ni under 123.txt		在123.txt文件中搜索under字符串,大小写敏感,显示行及行号;
  • 终止当前操作
ctrl+z
ctrl+c

Ctrl+cCtrl+z都是中断命令,但是作用却不一样。

Ctrl+Z

是将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行。
Ctrl+C是强制中断程序的执行,进程已经终止。

3、压缩和解压缩

  • 压缩(.tar   .tar.gz  .zip

tar -cvf start.tar a.java b.java		//将当前目录下a.java、b.java打包压缩成start.tar文件
tar -cvf start.tar ./*					//将当前目录下的所有文件打包压缩成start.tar文件

tar -zcvf start.tar.gz a.java b.java	//将当前目录下a.java、b.java打包压缩成start.tar.gz文件
tar -zcvf start.tar.gz ./*				//将当前目录下的所有文件打包压缩成start.tar.gz文件

zip lib.zip java.jar					//将java.jar文件打包压缩成lib.zip文件(单个文件压缩)
zip -r lib.zip lib/						//将lib/整个目录打包压缩成lib.zip文件(整个目录压缩)
zip -r lib.zip java1.jar java2.jar		//将java1.jar和java2.jar打包压缩成lib.zip文件(多个文件压缩)	
  • 解压缩(.tar   .tar.gz  .zip
tar -xvf start.tar						//解压start.tar压缩包,到当前文件夹下;
tar -xvf start.tar -C usr/local 		//解压start.tar压缩包,到/usr/local目录下( C为大写,中间无空格);

tar -zxvf start.tar.gz					//解压start.tar.gz压缩包,到当前文件夹下;
tar -zxvf start.tar.gz -C usr/local 	//解压start.tar.gz压缩包,到/usr/local目录下( C为大写,中间无空格);

unzip test.zip  						//解压一个zip格式压缩包
unzip -d /usr/app/test.zip		        //将'test.zip'包,解压到指定目录下'/usr/app/'
  • 解压缩.tar.xz文件
tar xf node-v12.18.1-linux-x64.tar.xz

4、更改文件权限 

chmod u+x web.xml (---x------)		为文件拥有者(user)添加执行权限;
chmod g+x web.xml (------x---)		为文件拥有者所在组(group)添加执行权限;
chmod 111 web.xml (---x--x--x)	    为所有用户分类,添加可执行权限;
chmod 222 web.xml (--w--w--w-)		为所有用户分类,添加可写入权限;	
chmod 444 web.xml (-r--r--r--)		为所有用户分类,添加可读取权限;

5、远程操作另一个的Linux系统 

  • 远程登录(ssh

在 Linux 中使用ssh命令去远程登录另一个 Linux 系统。

# 以root用户的身份去登录192.168.0.73这台主机
ssh root@192.168.0.73

PS

1.当前用户第一次建立连接时,会提示“是否继续建立连接”,实际上也就是询问“是否保存对方的公钥”,输入的必须是完整的yes或no,不能是y或n。输入yes之后,会提示输入密码。当前用户再次建立连接的时候,只需要输入密码即可。
这里特别强调一下是当前用户,不要误认为“一个 Linux 系统中只要有一个用户保存了公钥,其他的用户再登录这台主机时,直接输密码登录就行”,实际上是每个用户第一次使用ssh命令登录,都需保存公钥,即同一 Linux 系统中各个用户之间公钥不是共享的,每个用户都需持有各自的一份。

2.公钥保存的位置是在~/.ssh/konwn_hosts这个文件中,也就是每个用户的目录下的.ssh/konwn_host文件中。

  • ​​​​​远程拷贝(scp

scp命令与cp命令类似,可以从远程拷贝文件至本地指定位置(下载)或者将本地文件拷贝至远程指定位置(上传)。

# 远程复制文件
scp /usr/local/test.txt root@192.168.0.73:/usr/local/

# 远程复制目录
scp -r /usr/local/ root@192.168.0.73:/usr/

# 远程下载文件至本地
scp root@192.168.0.73:/usr/local/test.txt ./usr/local/

# 远程下载目录至本地
scp -r root@192.168.0.73:/usr/local/ /usr/local/

6、CentOS firewalld(防火墙)指令

6.1 查看firewalld状态

  • 查看firewalld服务状态指令:systemctl status firewalld

  • 查看firewalld状态指令:firewall-cmd --state

6.2 开启、重启、关闭firewalld服务

  • 开启:service firewalld start
  • 关闭:service firewalld stop
  • 重启:service firewalld restart

6.3 查询、开放、关闭firewalld端口

  • 查询全部已开放的端口:firewall-cmd --list-all
  • 查询某个端口是否开放:firewall-cmd --query-port=端口/tcp
  • 开放端口:firewall-cmd --permanent --add-port=端口/tcp
  • 关闭端口:firewall-cmd --permanent --remove-port=端口/tcp
  • 刷新服务(开放、关闭端口操作后需刷新才能生效):firewall-cmd --reload

PS:报错 ModuleNotFoundError: No module named 'gi'

解决方法:

执行命令:vim /usr/bin/firewall-cmd,打开文件修改第一行pythonpython2

7、解决服务器时差问题

  • 查看服务器时间:
[root@localhost ~]# date
Tue Feb 20 01:58:00 EST 2024

EST是美国标准时间,EDT是美国夏令时时间,GMT是格林尼治标准时间,CST才是北京时间。

  • 修改系统时区
[root@localhost ~]# mv /etc/localtime /etc/localtime.bak

[root@localhost ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
  • 修改完成查看系统时间已经是北京时间了:
[root@localhost ~]# date
Tue Feb 20 15:27:45 CST 2024
  •  查看Crond的运行日志,发现时间还没有更改过来,最后重启服务器解决
# 查看运行日志
[root@localhost ~]# cat /var/log/cron

二、各服务部署命令

1、增加虚拟内存

一、查看内存大小(mb)
free -mh

二、.创建虚拟内存(创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小))
dd if=/dev/zero of=/root/swap bs=1M count=1024
 1. 4G以内的物理内存,SWAP设置为内存的2倍
 2. 4-8G的物理内存,SWAP等于内存大小
 3. 8-64G 的物理内存,SWAP设置为8G
 4. 64-256G物理内存,SWAP设置为16G

三、初始化分区
mkswap /root/swap

四、启动分区
swapon /root/swap

五、设置开机自动启用虚拟内存
1.打开文件:
vim /etc/fstab
2.在文件中加入如下内容:
/root/swap swap swap defaults 0 0

六、查看swappiness参数
cat /proc/sys/vm/swappiness

七、修改swappiness参数
1.打开配置文件:
vim /etc/sysctl.conf
2.修改参数值:
vm.swappiness=20

八、重启服务器
reboot

2、JDK

2.1 删除系统自带的openjdk

PS:安装jdk前,需先将系统自带的jdk删除,再安装新的jdk,否则会出现兼容性等问题。(实测)

  • 搜索出所有包含java的文件
rpm -qa |grep java
  • 执行以下删除命令

PS:搜索出来可能有多个文件,咱们只删除以 java-1.xxxx.0-openjdktzdata-java 开头的文件,其它的文件千万千万千万不能删除,否则就重新安装吧。我自己勿删了一次。

rpm -e –nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

rpm -e –nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64

rpm -e –nodeps tzdata-java-2013g-1.el6.noarch
  • 删除完后,再次检查一下
java -version

2.2 安装jdk

  • jdk下载

有两种jdk下载方法:

        a、从官网下载,将JDK下载至本地,再通过xftp或filezilla工具上传至服务器

                官网:Java Downloads | Oracle 中国

        b、直接通过命令拷贝:

wget http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  • 解压
tar -zxvf jdk-8u131-linux-x64.tar.gz
  • 打开配置文件
vim /etc/profile
  • 在/etc/profile文件中,配置环境变量,使JDK在所有用户中生效
# 编辑文件,在最后添加如下三行:
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  •  保存退出后,执行命名使修改的环境变量生效
source  /etc/profile
  •  查询是否安装成功
[root@host-10-23-114-54 ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

2.3 删除jdk

  • 卸载jdk
rm -rf /usr/java/jdk1.8.0_131/bin/java
  • 删除环境变量:export开头的三行
[root@host-10-23-114-54 ~]# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3、Maven

  • 下载

有两种maven下载方法:

        a、从官网下载,将Maven下载至本地,再通过xftp或filezilla工具上传至服务器

                官网:Maven – Download Apache Maven

        b、直接通过命令拷贝:

wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
  • 解压
tar -zxvf apache-maven-3.6.3-bin.tar.gz
  • 重命名(个人习惯,方便配置环境变量而已)
mv apache-maven-3.6.3/ maven
  • 配置环境变量,编辑配置文件
vi /etc/profile

加入如下配置:

export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:${MAVEN_HOME}/bin
  • 让配置立即生效执行
source /etc/profile
  •  查看maven是否安装成功
[root@host-10-23-112-45 ~]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/maven/apache-maven-3.6.3
Java version: 1.8.0_221, vendor: Oracle Corporation, runtime: /usr/local/java/jdk1.8.0_221/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "4.19.90-23.8.v2101.ky10.x86_64", arch: "amd64", family: "unix"

4、Git

有两种下载方式:

4.1 yum安装

  • 安装命令:
yum -y install git
  •  安装完之后,可以通过命令git --version查看是否安装成功

PS:1、使用yum安装,git是被安装在/usr/libexec/git-core目录下;

         2、yum安装简单,但是存在的问题是安装的git版本较低。

4.2 从github上下载最新的源码编译后安装

  • 在github上找到git发布的版本,选择最新版本的tar.gz包下载 

        github下载地址:https://github.com/git/git

  • 上传至linux服务器,并解压
# 解压命令:(***为下载的Git包名)
tar -zxvf ***.tar.gz
  • 解压后就需要编译源码,在编译源码之前需要下载所需要的依赖,命令如下
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
  • 安装编译源码所需依赖的时候,yum自动帮你安装了git,所以需要先卸载这个旧版的git
yum -y remove git
  • 编译git源码
make prefix=/usr/local/git all

PS:其中/usr/local/git是源码编译后所在的目录,自行指定。

  • 安装git至指定路径(/usr/local/git
make prefix=/usr/local/git install
  • 配置环境变量
vim /etc/profile

  在配置文件的底部加上:export PATH=$PATH:/usr/local/git/bin

  • 刷新配置
source /etc/profile
  • 通过git --version可以查看安装git的版本号

5、Nginx

5.1 安装安装编译工具及库文件

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

5.2 安装 PCRE

PCRE 作用是让 Nginx 支持 Rewrite 功能。

  • 下载 PCRE 安装包(统一下载到:/usr/local/

      两种下载方式:

        a、官网下载,下载地址:Download pcre-8.35.tar.gz (PCRE)

        b、通过命令下载

wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
  • 解压安装包
tar zxvf pcre-8.35.tar.gz
  • 进入安装包目录,编译安装
# 进入安装包目录
cd pcre-8.35

#编译
./configure
make && make install
  • 查看pcre版本
pcre-config --version

5.3 安装Nginx

  • 下载Nginx

        有两种nginx下载方法:

                a、从官网下载,将Maven下载至本地,再通过xftp或filezilla工具上传至服务器

                官网下载:nginx: download

                b、直接通过命令拷贝

wget http://nginx.org/download/nginx-1.6.2.tar.gz
  • 解压安装包
tar zxvf nginx-1.6.2.tar.gz
  • 进入安装包目录,编译安装
# 进入安装包目录
[root@bogon src]# cd nginx-1.6.2

# 编译安装
[root@bogon nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.35
[root@bogon nginx-1.6.2]# make && make install
  • 查看nginx版本
/usr/local/nginx/sbin/nginx -v

5.4 Nginx配置

  • 创建 Nginx 运行使用的组和用户:
[root@bogon conf]# /usr/sbin/groupadd ng
[root@bogon conf]# /usr/sbin/useradd -g ng ng
  • 修改配置文件 nginx.conf
[root@bogon conf]# cat /usr/local/nginx/conf/nginx.conf

 将/usr/local/nginx/conf/nginx.conf替换为以下内容:

user ng ng;
worker_processes 2; #设置值和CPU核心数一致
error_log /usr/local/nginx/logs/nginx_error.log crit; #日志位置和日志级别
pid /usr/local/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
  use epoll;
  worker_connections 65535;
}
http
{
  include mime.types;
  default_type application/octet-stream;
  log_format main  '$remote_addr - $remote_user [$time_local] "$request" '
               '$status $body_bytes_sent "$http_referer" '
               '"$http_user_agent" $http_x_forwarded_for';
  
#charset gb2312;
     
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
     
  sendfile on;
  tcp_nopush on;
  keepalive_timeout 60;
  tcp_nodelay on;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  gzip on; 
  gzip_min_length 1k;
  gzip_buffers 4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types text/plain application/x-javascript text/css application/xml;
  gzip_vary on;
 
  #limit_zone crawler $binary_remote_addr 10m;
 #下面是server虚拟主机的配置
 server
  {
    listen 80;#监听端口
    server_name localhost;#域名
    index index.html index.htm index.php;
    root /usr/local/nginx/html;#站点目录
      location ~ .*\.(php|php5)?$
    {
      #fastcgi_pass unix:/tmp/php-cgi.sock;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
    {
      expires 30d;
  # access_log off;
    }
    location ~ .*\.(js|css)?$
    {
      expires 15d;
   # access_log off;
    }
    access_log off;
  }

}
  • 检查配置文件nginx.conf的正确性命令
/usr/local/nginx/sbin/nginx -t
  •  启动Nginx
/usr/local/nginx/sbin/nginx
  •  Nginx其他命令(重启、停止、重载配置
/usr/local/nginx/sbin/nginx -s reload            # 重新载入配置文件
/usr/local/nginx/sbin/nginx -s reopen            # 重启 Nginx
/usr/local/nginx/sbin/nginx -s stop              # 停止 Nginx

6、MySQL(8.0+)

6.1 下载

两种下载方法:

  • 官网下载安装包,再上传至服务器(强烈推荐

        官网下载地址:MySQL :: Download MySQL Community Server (Archived Versions)

        服务器路径我个人习惯是放到:/usr/local/

  • 通过yum命令直接下载
yum -y install mysql-server

PS:本人推荐从官网下载安装包的方式进行下载MySQL,因为这样MySQL的版本是可控的,而且下面的操作步骤,也都是围绕该方法进行阐述的。

6.2 解压

tar -xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz

6.3 移动位置并重新命名(个人习惯)

这一步骤是因为本人的习惯,重命名之后也方便后面的配置修改。

mv mysql-8.0.31-linux-glibc2.12-x86_64 /usr/local/mysql

6.4 创建mysql用户组和用户并修改权限

groupadd mysql
useradd -r -g mysql mysql

6.5 创建目录并赋予权限

#创建目录:
mkdir -p  /data/mysql

#赋予权限:
chown mysql:mysql -R /data/mysql

6.6 配置my.cnf文件

vim /etc/my.cnf

配置内容如下:

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

6.7 初始化MySQL

  • 进入bin目录下
cd /usr/local/mysql/bin/
  • 初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
  • 查看密码
cat /data/mysql/mysql.err

生成的默认密码如下图:

PS:红框内的,就是生成的默认密码,我是直接使用的默认密码,所以截图时直接打码处理了,要是需要修改默认密码的,在下面我也有说明怎么修改默认密码。 

  • 先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
  • 启动
service mysql start

6.8 修改默认密码

  • 先到bin目录下,登录MySQL,输入之前红框内的默认密码
# bin目录下
./mysql -u root -p

  •  执行以下命令将默认密码改为123456,并刷新系统设置
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;

6.9 配置远程连接(Navicat可连接)

如果需要Navicat或其它工具远程连接MySQL数据库,还需配置一下。

use mysql;
update user set host='%' where user='root';
flush privileges;

6.10  查看安装路径和安装环境是否正常

whereis mysql;
whereis mysqldump;

 如图则正常:

如果少了,或者没有需要手动配置一下:

vi /etc/profile

 在最后添加一行:

export PATH=$PATH:/usr/local/mysql/bin

刷新配置文件:

source /etc/profile

6.11  异常处理方案

  • MySQL登录时报错:error while loading shared libraries: libtinfo.so.5
解决方法:
[root@localhost]# find / -name "libtinfo.so*"
/usr/lib64/libtinfo.so.6.0
/usr/lib64/libtinfo.so.6

[root@localhost]# ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5

7、Elasticsearch

7.1 Elasticsearch部署

7.1.1 下载

两种下载方式:

        a、官网下载安装包到本地,再传至服务器上(指定路径:/usr/local/)

        官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch

        b、通过命令下载

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.0-linux-x86_64.tar.gz
7.1.2 解压
tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /usr/local/elasticsearch
7.1.3 创建用户、修改用户密码、赋权

进入 usr/local/elasticsearch目录操作:

# 创建用户
useradd es 

# 为用户修改密码
passwd elasticsearch

# 创建data文件夹
mkdir -p /usr/local/elasticsearch/logs/

# 创建es日志logs文件夹
mkdir -p /usr/local/elasticsearch/data/

# 用户文件夹赋权
​chown -R es:es /usr/local/elasticsearch/
7.1.4 修改内存配置文件 jvm.options
vim /usr/local/elasticsearch/config/jvm.options

修改内容如下:

-Xms512m
-Xmx512m
7.1.5 修改elasticsearch配置文件 elasticsearch.yml
vim /usr/local/elasticsearch/config/elasticsearch.yml

修改内容如下:

# 集群名字
cluster.name: my-application

# 集群节点名字设置
node.name: node-1

# 设置数据存储路径,默认是es下的data文件夹,可以设置多个存储路径,用逗号隔开
path.data: /usr/local/elasticsearch/data/

# 设置日志路径,默认是es下的logs文件夹
path.logs: /usr/local/elasticsearch/logs/

# 绑定的ip:默认只允许本机访问,修改为0.0.0.0后则可以远程访问
network.host: 0.0.0.0 

# 集群发现节点配置,有集群的话必须配置此项
discovery.seed_hosts: ["127.0.0.1"]

# 设置集群初始化master节点
cluster.initial_master_nodes: ["node-1"]

# 设置elasticsearch密码,加入x-pack支持(true为开启密码校验,flase为关闭校验)
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

# 这个开关表示basic类型的license,还有trail(使用)类的,我的环境当前可以不用设置
#xpack.license.self_generated.type: basic
7.1.6 修改配置文件 limits.conf

修改内容如下:

soft   nofile   65536
hard   nofile   65536

7.2 Elasticsearch中文分词器部署

分词器是Elasticsearch中很重要的一个组件,用来将一段文本分析成一个一个的词,Elasticsearch再根据这些词去做倒排索引。核心功能是数据检索,首先通过减速将文档写入ES,再进行查询分析。

7.2.1 下载

通过命令直接下载:(推荐下载路径:/usr/local/elasticsearch/

wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v7.4.0.zip
7.2.2 解压
unzip v7.4.0.zip
7.2.3 切换安装目录,并用mvn打包
# 切换目录
cd elasticsearch-analysis-ik-7.4.0/

# mvn打包(打包过程比较慢,请耐心等待;如果mvn打包报异常,可能是maven安装或配置的有问题,可以参考之前的Maven部署教程)
mvn package
7.2.4 切换插件目录,并新建目录
# 切换至plugins目录
cd /usr/local/elasticsearch/plugins/

# 新建文件夹
mkdir ik
7.2.5 在新建目录下,拷贝安装包并解压
# 切换目录
cd /usr/local/elasticsearch/plugins/ik/

# 拷贝文件
cp -R /usr/local/elasticsearch/elasticsearch-analysis-ik-7.4.0/target/releases/elasticsearch-analysis-ik-7.4.0.zip  /usr/local/elasticsearch/plugins/ik

# 拷贝配置
cp -R /usr/local/elasticsearch/plugins/ik/config/*  /usr/local/elasticsearch/config

7.3 启动Elasticsearch

# 切换创建的es用户
su es

# 后台启动elasticsearch
./elasticsearch -d

7.4 Elasticsearch设置密码(一定要是root账户)

  • 需要在配置文件中开启x-pack验证, 修改config目录下面的elasticsearch.yml文件,在里面添加如下内容:
# 是否启用es的安全设置,启用安全设置后es各节点、客户端的传输都会加密,并需要账号密码
xpack.security.enabled: true

# 此项不可更改,当启用安全设置后,此项必须为true
xpack.security.transport.ssl.enabled: true
  • 重启Elasticsearch
  • 进入elasticsearch/bin目录,执行
./elasticsearch-setup-passwords interactive

需要设置以下用户的密码,根据提示输入密码即可:

Initiating the setup of passwords for reserved users 
elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y

Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana_system]:
Reenter password for [kibana_system]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]

7.5 异常处理方案

  • 启动时报错:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方案:修改sysctl.conf文件,命令如下:(root帐户进行修改

# 修改sysctl.conf配置文件
vim /etc/sysctl.conf

# 设置vm.max_map_count
vm.max_map_count = 262144

# 重新加载/etc/sysctl.conf配置
sysctl -p

8、Redis

8.1 下载、解压

# 先进入/usr/local目录下
cd /usr/local/

# 通过命令下载
wget https://download.redis.io/releases/redis-6.2.6.tar.gz

# 解压
tar xzf redis-6.2.6.tar.gz

# 重命名
mv redis-6.2.6 redis

8.2 编译

# 进入redis目录
cd /usr/local/redis/

# 编译
make

等待make命令执行完成即可。

执行make命令可能出现以下报错:

  • cc 未找到命令,原因是虚拟机系统中缺少gcc,执行下面命令安装gcc:
yum -y install gcc automake autoconf libtool make
  • 致命错误:jemalloc/jemalloc.h: 没有那个文件或目录,则需要在make指定分配器为libc。执行下面命令即可正常编译:
make MALLOC = libc

8.3 安装

执行下面命令安装redis,并指定安装目录:

make PREFIX=/usr/local/redis install

8.4 拷贝及修改配置 

# 拷贝配置
cp redis.conf /usr/local/redis

# 修改配置
vim /usr/local/redis/redis.conf


修改内容如下:
将 bind 127.0.0.1 -::1    替换为  bind 0.0.0.0
将 daemonize on           替换成  daemonize yes

8.5 启动

进入redis安装目录,执行下面命令启动redis服务:

# 切换目录
cd /usr/local/redis

# 启动redis
./bin/redis-server redis.conf

8.6 检测Redis是够启动成功

# 查看redis进程
ps -ef | grep redis

# 通过redis-cli测试redis是否可用,在redis安装目录执行下面命令:
./bin/redis-cli


# 此处我们通过下面命令随便set一个字符串类型的值,key是test,value是hello:
set test hello

# 然后通过下面命令get出test这个key的value值是否是:hello
# 如果是hello,则redis部署启动成功
get test

# 退出
exit

8.7 查看、修改、认证、删除Redis密码

# 查看密码
config get requirepass

# 设置密码(*号输入自己定义的密码)
config set requirepass "******"

# 认证密码(*号输入自己定义的密码)
auth ******

# 删除密码
config set requirepass ''

9、RocketMQ

9.1 下载

两种下载方式:(推荐服务器路径为:/usr/local/

PS:1、从官网上下载的压缩包都是已经编译好的,下载的安装包直接上传至服务器上,解压缩后就可以启动了

        2、通过命令下载的包是未编译的,需要编译才能启动。

a、前往官网

   官网下载地址:下载 | RocketMQ

  • 解压
unzip rocketmq-all-4.9.0-bin-release.zip
  •  重命名
mv rocketmq-all-5.1.4-bin-release /usr/local/recketmq

b、通过命令直接下载

wget https://github.com/apache/rocketmq/archive/rocketmq-all-4.9.0.tar.gz
  • 解压
tar -zxvf rocketmq-all-4.9.0.tar.gz
  • 编译
mvn -Prelease-all -DskipTests clean install -U
  • 移动到指定目录
mv /usr/local/rocketmq/distribution/target/rocketmq-4.9.0/rocketmq-4.9.0 
/usr/local/rocketmq

9.2 切换目录到rocketmq根目录,启动 Name Server 和 Broker

# 切换至根目录
cd /usr/local/rocketmq/

# 启动Name Server
nohup sh bin/mqnamesrv &

# 验证 Name Serve 是否启动成功:
tail -f ~/logs/rocketmqlogs/namesrv.log
# 如果成功启动,能看到类似如下的日志:
2021-07-06 17:03:56 INFO main - The Name Server boot success. ...


# 启动 Broker
nohup sh bin/mqbroker -n localhost:9876 &

# 验证 Broker 是否启动成功:
tail -f ~/logs/rocketmqlogs/broker.log
# 如果启动成功,能看到类似如下的日志:
2020-07-06 17:08:41 INFO main - The broker[itmuchcomdeMacBook-Pro.local, 192.168.1.218:10911] boot success. serializeType=JSON and name server is localhost:9876

9.3 验证rocketmq功能正常(可选) 

9.3.1 验证生产消息正常

执行如下命令:

export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

能看到类似如下输出:

SendResult [sendStatus=SEND_OK, msgId=C0A82BC5F36C511D50C05B41...
9.3.2 验证消费消息正常

执行如下命令:

sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

能看到类似如下输出:

ConsumeMessageThread_4 Receive New Messages: [MessageExt [queueId=3, stor....

9.4 停止

依次执行以下两条命令即可:

# 停止 broker
sh bin/mqshutdown broker
# 输出如下信息说明停止成功:
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK

# 停止 namesrv
sh bin/mqshutdown namesrv
# 输出如下信息说明停止成功:
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

9.5 RocketMQ可视控制台Dashboard部署

Dashboard是一个Java web 项目,Maven工程。通过源码编译成jar包后启动即可通过浏览器访问。通过html界面可以查看RockeMQ集群状态、创建/删除Topic、生产/消费等。

9.5.1 安装

先进入安装的根目录,在执行如下命令:

# 1、从GitHub 下载源码包
wget -P /usr/local/rocketmq https://github.com/apache/rocketmq-dashboard/archive/refs/tags/rocketmq-dashboard-1.0.0.tar.gz

# 2、解压
tar -xf /usr/local/rocketmq/rocketmq-dashboard-1.0.0.tar.gz -C /usr/local/rocketmq

# 3、编译
mvn clean package -Dmaven.test.skip=true -f /usr/local/rocketmq/rocketmq-dashboard-rocketmq-dashboard-1.0.0

# 4、创建指定目录
mkdir -p /usr/local/rocketmq-dashboard

# 5、拷贝jar到/usr/local/rocketmq-dashboard
cp -r /usr/local/rocketmq/rocketmq-dashboard-rocketmq-dashboard-1.0.0/target/rocketmq-dashboard-1.0.0.jar /usr/local/rocketmq-dashboard

PS:编译可能会出现编译失败的情况,解决方法如下: 

编译问题截图:

问题分析:根据报错提示,应该是maven-checkstyle-plugin插件的问题。

方法一:

修改pom文件,找到插件maven-checkstyle-plugin:2.17,添加跳过属性。

  

方法二:

找到插件maven-checkstyle-plugin:2.17对应的插件标签,将其注释;

清除原target目录,重新编译即可。

9.5.2 启动/停止
# 前台启动
java -jar /usr/local/rocketmq-dashboard/rocketmq-dashboard-1.0.0.jar

# 后台启动(指定端口号,后台启动)推荐
nohup java -jar /usr/local/rocketmq-dashboard/rocketmq-dashboard-1.0.0.jar --server.port=9877 &

# 查询进程
jps | grep rocketmq-dashboard-1.0.0.jar

# 根据进程Id(pid)杀死进程
kill -9 pid

安装完成后通过 IP+端口即可访问。

9.5.3 开启登录设置,并设置登录帐号和密码

在云服务器上部署rocketmq-dashboard,如果直接打包运行,可能会存在安全隐患,需要修改配置,开启用户登录。

  • 修改 application.properties 文件

# server.address 如果写成127.0.0.1,只能本地访问
server.address=0.0.0.0
 
# 默认8080,建议修改成其他端口
server.port=19876

# 配置rocketmq的IP和端口 
rocketmq.config.namesrvAddr=服务器IP:9876

# 是否开启登录(true为开启,默认是false)
rocketmq.config.loginRequired=true
  • 修改 users.properties 文件,添加用户名密码

默认的配置如下:

# Define Admin
admin=admin,1
 
# Define Users
user1=user1
user2=user2

 配置用户名和密码:

# Define Admin
# 配置admin帐户
admin=admin,1

# Define Users
# 配置admin帐户的密码
admin=******

 输入如下命令:

# 进入根目录
cd rocketmq-dashboard

# mvn重新编译 
mvn clean package -Dmaven.test.skip=true

# 重启 
nohup java -jar /usr/local/rocketmq-dashboard/rocketmq-dashboard-1.0.0.jar --server.port=9877 &

10、PlumeLog

plumeLog是一个简单易用的java日志系统,其在日志收集方面做的很好,部署plumeLog同时,也需要部署elasticsearchrediskafka(一般公司,Redis就足够了)。

10.1 下载(推荐路径:/usr/local/)

下载地址Plumelog 发行版 - Gitee.com

10.2 解压

unzip plume-log-server-3.5.zip

10.3 修改配置

vim /usr/local/plumelog/application.properties

下面是本人的配置文件,以供参考:(其中redis、elasticsearch和plumelog后台的账号密码,需要各位自己设置,其它的直接ctrl+cv)

spring.application.name=plumelog_server
spring.profiles.active=test-confidential
server.port=8891
spring.thymeleaf.mode=LEGACYHTML5
spring.mvc.view.prefix=classpath:/templates/
spring.mvc.view.suffix=.html
spring.mvc.static-path-pattern=/plumelog/**

spring.boot.admin.context-path=admin

#值为4种 redis,kafka,rest,restServer,redisCluster,redisSentinel
#redis 表示用redis当队列
#redisCluster 表示用redisCluster当队列
#redisSentinel 表示用redisSentinel当队列
#kafka 表示用kafka当队列
#rest 表示从rest接口取日志
#restServer 表示作为rest接口服务器启动
#ui 表示单独作为ui启动
plumelog.model=redis

#如果使用kafka,启用下面配置
#plumelog.kafka.kafkaHosts=172.16.247.143:9092,172.16.247.60:9092,172.16.247.64:9092
#plumelog.kafka.kafkaGroupName=logConsumer

#队列redis地址,集群用逗号隔开,model配置redis集群模式
plumelog.queue.redis.redisHost=127.0.0.1:6379
#如果使用redis有密码,启用下面配置
plumelog.queue.redis.redisPassWord=******
plumelog.queue.redis.redisDb=1

#管理端redis地址
plumelog.redis.redisHost=127.0.0.1:6379
#如果使用redis有密码,启用下面配置
plumelog.redis.redisPassWord=******
plumelog.queue.redis.redisDb=1

#如果使用rest,启用下面配置
#plumelog.rest.restUrl=http://127.0.0.1:8891/getlog
#plumelog.rest.restUserName=plumelog
#plumelog.rest.restPassWord=123456

#redis解压缩模式,开启后不消费非压缩的队列
#plumelog.redis.compressor=true

#elasticsearch相关配置,Hosts支持携带协议,如:http、https
#plumelog.es.esHosts=172.16.187.107:9200
plumelog.es.esHosts=127.0.0.1:9200
#ES7.*已经去除了索引type字段,所以如果是es7不用配置这个,7.*以下不配置这个会报错
#plumelog.es.indexType=plumelog
plumelog.es.shards=5
plumelog.es.replicas=1
plumelog.es.refresh.interval=30s
#日志索引建立方式day表示按天、hour表示按照小时
plumelog.es.indexType.model=day
#ES设置密码,启用下面配置
plumelog.es.userName=******
plumelog.es.passWord=******
#是否信任自签证书
#plumelog.es.trustSelfSigned=true
#是否hostname验证
#plumelog.es.hostnameVerification=false


#单次拉取日志条数
plumelog.maxSendSize=100
#拉取时间间隔,kafka不生效
plumelog.interval=100

#plumelog-ui的地址 如果不配置,报警信息里不可以点连接
plumelog.ui.url=http://127.0.0.1/plumelog

#管理密码,手动删除日志的时候需要输入的密码
admin.password=******

#日志保留天数,配置0或者不配置默认永久保留
admin.log.keepDays=30
#链路保留天数,配置0或者不配置默认永久保留
admin.log.trace.keepDays=30
#登录配置,配置后会有登录界面
login.username=admin
login.password=******

10.4 启动

 在plumelog目录,输入如下命令:

./startup.sh

11、Jenkins

部署Jenkins前提,是需要安装jdk。

11.1 安装

  • 官网下载war包(推荐下载目录:/usr/local/jenkins/

        官网下载地址:Jenkins 的安装和设置

11.2 启动

切换到Jenkins根目录下,运行下面的命令:

# 切换到根目录
cd /usr/local/jenkins/

# 启动war包(不指定端口号,前台启动)
java -jar jenkins.war

jenkis服务默认端口为:8080,如果跟本地的其它服务端口冲突,需要更改端口,修改命令如下:

# 修改jenkins服务端口,并后台启动
nohup java -jar jenkins.war --ajp13Port=-1 --httpPort=8090 &

11.3 访问

  • 浏览器输入:http://localhost:8080(此处换成你的服务器ipJenkins端口) 

根据提示获取初始密码进行登陆。此处初始密码存放在/var/lib/jenkins/secrets/initialAdminPassword文件中。

  • 输入管理员密码,点击继续,可能会出现如下问题,提示该jenkins实例似乎已下线

解决方法:

a、访问jenkins配置页面:http://localhost:8080/pluginManager/advanced

b、修改httpshttp

 c、提交后,重启Jenkins,输入管理员密码就可以了

  •  新手直接选择安装推荐的插件即可

单击进入后会出现如下界面,表示自动开始安装所有推荐的插件,等待后续即可。界面右侧是安装的列表及当前插件安装进展。

  • 添加用户

插件安装完成之后开始创建管理员用户。

创建完成之后成功登录:

12、Nacos

12.1 下载

两种下载方式:

        a、官网下载压缩包,再上传至服务器

        官网下载地址:Tags · alibaba/nacos · GitHub

        b、使用wget命令下载

# 下载速度较慢,推荐第二条
wget https://github.com/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gz

# 推荐该命令
wget https://download.fastgit.org/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gz

12.2 解压

# 切换目录
cd /usr/local/

# 解压
tar -xvf nacos-server-2.2.0.tar.gz

12.3 创建mysql数据库

  • 在解压好的nacos文件夹下找到config文件夹
  • 进入config文件夹,找到nacos-mysql.sql文件
  • 将nacos-mysql.sql文件下载到本地,本地使用Navicat连接上mysql
  • 使用Navicat在mysql中创建名为nacos的数据库,注意数据库名后面会用上

12.4 修改数据库配置

  • 修改application.properties
# 切换到config目录
cd /usr/local/nacos2.2.0/conf/

# 修改配置文件
vim /usr/local/nacos2.2.0/conf/application.properties

 完整的配置如下:

#
# Copyright 1999-2018 Alibaba Group Holding Ltd.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=9001

### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2

#*************** Network Related Configurations ***************#
### If prefer hostname over ip for Nacos server addresses in cluster.conf:
# nacos.inetutils.prefer-hostname-over-ip=false

### Specify local server's IP:
# nacos.inetutils.ip-address=


#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://mysql.xxx.tech:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=nacos

#*************** Naming Module Related Configurations ***************#
### Data dispatch task execution period in milliseconds: Will removed on v2.1.X, replace with nacos.core.protocol.distro.data.sync.delayMs
# nacos.naming.distro.taskDispatchPeriod=200

### Data count of batch sync task: Will removed on v2.1.X. Deprecated
# nacos.naming.distro.batchSyncKeyCount=1000

### Retry delay in milliseconds if sync task failed: Will removed on v2.1.X, replace with nacos.core.protocol.distro.data.sync.retryDelayMs
# nacos.naming.distro.syncRetryDelay=5000
### If enable data warmup. If set to false, the server would accept request without local data preparation:
# nacos.naming.data.warmup=true

### If enable the instance auto expiration, kind like of health check of instance:
# nacos.naming.expireInstance=true

nacos.naming.empty-service.auto-clean=true
nacos.naming.empty-service.clean.initial-delay-ms=50000
nacos.naming.empty-service.clean.period-time-ms=30000


#*************** CMDB Module Related Configurations ***************#
### The interval to dump external CMDB in seconds:
# nacos.cmdb.dumpTaskInterval=3600

### The interval of polling data change event in seconds:
# nacos.cmdb.eventTaskInterval=10

### The interval of loading labels in seconds:
# nacos.cmdb.labelTaskInterval=300

### If turn on data loading task:
# nacos.cmdb.loadDataAtStart=false


#*************** Metrics Related Configurations ***************#
### Metrics for prometheus
management.endpoints.web.exposure.include=*
### Metrics for elastic search
management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200

### Metrics for influx
management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true

#*************** Access Log Related Configurations ***************#
### If turn on the access log:
server.tomcat.accesslog.enabled=true

### The access log pattern:
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
### The directory of access log:
server.tomcat.basedir=
#spring.datasource.platform=mysql
#db.num=1
#db.url.0=jdbc:mysql://10.101.167.27:3306/acm?characterEncoding=utf8&connectTimeout=1000&socketTimeout=10000&autoReconnect=true
#db.user=root
#db.password=root
#*************** Access Control Related Configurations ***************#
### If enable spring security, this option is deprecated in 1.2.0:
#spring.security.enabled=false


### The ignore urls of auth, is deprecated in 1.2.0:
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**

### The auth system to use, currently only 'nacos' and 'ldap' is supported:
nacos.core.auth.system.type=nacos

### If turn on auth system:
nacos.core.auth.enabled=false
### worked when nacos.core.auth.system.type=ldap,{0} is Placeholder,replace login username
# nacos.core.auth.ldap.url=ldap://localhost:389
# nacos.core.auth.ldap.userdn=cn={0},ou=user,dc=company,dc=com

### The token expiration in seconds:
nacos.core.auth.default.token.expire.seconds=18000

### The default token:
nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=true

### Since 1.4.1, Turn on/off white auth for user-agent: nacos-server, only for upgrade from old version.
nacos.core.auth.enable.userAgentAuthWhite=false

### Since 1.4.1, worked when nacos.core.auth.enabled=true and nacos.core.auth.enable.userAgentAuthWhite=false.
### The two properties is the white list for auth and used by identity the request from other server.
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security

#*************** Istio Related Configurations ***************#
### If turn on the MCP server:
nacos.istio.mcp.server.enabled=false
#*************** Core Related Configurations ***************#

### set the WorkerID manually
# nacos.core.snowflake.worker-id=

### Member-MetaData
# nacos.core.member.meta.site=
# nacos.core.member.meta.adweight=
# nacos.core.member.meta.weight=

### MemberLookup
### Addressing pattern category, If set, the priority is highest
# nacos.core.member.lookup.type=[file,address-server]
## Set the cluster list with a configuration file or command-line argument
# nacos.member.list=192.168.16.101:8847?raft_port=8807,192.168.16.101?raft_port=8808,192.168.16.101:8849?raft_port=8809
## for AddressServerMemberLookup
# Maximum number of retries to query the address server upon initialization
# nacos.core.address-server.retry=5
## Server domain name address of [address-server] mode
# address.server.domain=jmenv.tbsite.net
## Server port of [address-server] mode
# address.server.port=8080
## Request address of [address-server] mode
# address.server.url=/nacos/serverlist

#*************** JRaft Related Configurations ***************#
### Distro data sync delay time, when sync task delayed, task will be merged for same data key. Default 1 second.
# nacos.core.protocol.distro.data.sync.delayMs=1000

### Distro data sync timeout for one sync data, default 3 seconds.
# nacos.core.protocol.distro.data.sync.timeoutMs=3000

### Distro data sync retry delay time when sync data failed or timeout, same behavior with delayMs, default 3 seconds.
# nacos.core.protocol.distro.data.sync.retryDelayMs=3000

### Distro data verify interval time, verify synced data whether expired for a interval. Default 5 seconds.
# nacos.core.protocol.distro.data.verify.intervalMs=5000

### Distro data verify timeout for one verify, default 3 seconds.
# nacos.core.protocol.distro.data.verify.timeoutMs=3000

### Distro data load retry delay when load snapshot data failed, default 30 seconds.
# nacos.core.protocol.distro

12.5 启动

 需先进入bin目录下,输入命令启动。

  • 单机模式:
./startup.sh -m standalone
  • 集群模式:
./startup.sh

PS:若是配置集群的话,需要修改cluster.conf.example

在里边添加其他节点的nacos的IP+端口号

12.6  访问

12.7 异常处理方案

  • No DataSource set

问题原因:没有找到数据源,一般情况是application.properties中,配置的mysq连接有问题。

解决方案:核对 12.4 步骤中的数据库配置,注意域名、数据库、mysql的账号密码是否正确。

### Connect URL of DB:
db.url.0=jdbc:mysql://mysql.xxx.tech:3306/nacos_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=nacos
  • com.alibaba.nacos.core.distributed.raft.exception.JRaftException: java.io.IOException: Failed to bind

问题原因:绑定失败

解决方案:

1、查看nacos进程是否启动了多个进程,kill所有进程,再启动nacos。

# 查看nacos进程
ps aux|grep nacos

# kill进程
kill 进程id

2、由于端口号的问题,在第四步,编辑端口号,注意端口号需要大于5001。并保证该端口被开放,再启动nacos。

# 查询指定端口是否已开启
firewall-cmd --query-port=9001/tcp

# 添加指定需要开放的端口: 
firewall-cmd --add-port=9001/tcp --permanent

# 重启防火墙 
firewall-cmd --reload

13、安装中文字体

在linux系统中,默认仅仅安装英文字体,而没有安装中文字体,若要使用中文字体,需要手动安装中文字体。

13.1 先查看系统中已经安装的字体

在开始安装之前,我们先查看系统中已经安装了哪些字体。我们可以使用fc-list命令进行查看。如果系统中没有该命令的话,我们需要先安装相关的软件包。

  • centos上,使用如下命令进行安装:
yum install -y fontconfig mkfontscale
  • ubuntu上,使用如下命令进行安装:
sudo apt-get -y install fontconfig xfonts-utils
  • 查看系统已经安装的字体
# 查看系统已安装的字体
fc-list

# 查看系统已安装的中文字体
fc-list :lang=zh

13.2 安装字体

这里我们安装黑体常规,即simhei.ttf

  • 下载字体

可以去网上搜索自己想要的字体,本人是以windows为例。

进入C:\Windows\Fonts,该文件夹下就存放相关字体,将simhei.ttf拷贝到linux 目录/usr/share/fonts/下即可

  • 生成字体索引,更新字体缓存
# 切换目录
cd /usr/share/fonts/

# 安装字体索引
mkfontscale

# 生成字体索引
mkfontdir

# 刷新字体缓存
fc-cache
  • 查看新字体是否安装成功
fc-list :lang=zh

如下表示安装成功:

如果这篇文章对您有所帮助,或者有所启发的话,求一键三连:点赞、评论、收藏➕关注,您的支持是我坚持写作最大的动力。

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Javaの甘乃迪

感谢看客老爷的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值