目录
5.systemctl mask 和 systemctl disable有什么区别
6. spring-boot-maven-plugin 构建找不到
(1)主机
表1 主机
| 系统 | 软件 | 版本 | IP | 备注 |
| Linux | openjdk | 1.8.0 | 192.168.204.200 | |
| maven | 3.5.0 | |||
| nacos | 1.3.2 | 依赖jdk 与maven | ||
| Windows | MySQL | 8.0.36 | localhost | Navicat 连接 |
(2) 查看java版本
[root@localhost ~]# java -version

(1) 官网
(2)解压
tar -zxvf apache-maven-3.5.0-bin.tar.gz

(3)移动
- [root@localhost ~]# cd /usr/local/apache-maven-3.5.0/
- [root@localhost apache-maven-3.5.0]# vim mvn.cmd
- [root@localhost apache-maven-3.5.0]# ll
- 总用量 36
- drwxr-xr-x. 2 root root 97 2月 23 20:17 bin
- drwxr-xr-x. 2 root root 42 2月 23 15:30 boot
- drwxr-xr-x. 3 501 games 63 4月 4 2017 conf
- drwxr-xr-x. 4 501 games 4096 2月 23 15:30 lib
- -rw-r--r--. 1 501 games 20934 4月 4 2017 LICENSE
- -rw-r--r--. 1 501 games 182 4月 4 2017 NOTICE
- -rw-r--r--. 1 501 games 2544 4月 4 2017 README.txt

(4)配置环境变量
修改/etc/profile的JAVA_HOME与mvn相匹配
- vim /etc/profile
- ……
- export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre
- export MAVEN_HOME=/usr/local/apache-maven-3.5.0
- export PATH=$PATH:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/bin:$MAVEN_HOME/bin
![]()

更新
[root@localhost bin]# source /etc/profile
![]()
查看版本
[root@localhost bin]# mvn -v

(1)官网
Nacos官网 | Nacos 官方社区 | Nacos 下载 | Nacos
(2)快速开始

(3)解压
[root@localhost opt]# unzip nacos-server-1.3.2.zip

(4)启动
进入bin目录
- [root@localhost bin]# cd /opt
- [root@localhost opt]# ls
- apache-maven-3.5.0-bin.tar.gz nacos nacos-server-1.3.2.zip rh
- [root@localhost opt]# cd nacos/
- [root@localhost nacos]# ls
- bin conf LICENSE NOTICE target
- [root@localhost nacos]# cd bin/
- [root@localhost bin]# ls
- shutdown.cmd shutdown.sh startup.cmd startup.sh
- [root@localhost bin]# sh startup.sh -m standalone
- /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre/bin/java -Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true -Dnacos.member.list= -Djava.ext.dirs=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre/jre/lib/ext:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre/lib/ext -Xloggc:/opt/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/opt/nacos/plugins/health,/opt/nacos/plugins/cmdb -Dnacos.home=/opt/nacos -jar /opt/nacos/target/nacos-server.jar --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/opt/nacos/conf/ --logging.config=/opt/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
- nacos is starting with standalone
- nacos is starting,you can check the /opt/nacos/logs/start.out

(5) 查看进程
- [root@localhost bin]# ps -ef |grep nacos
- root 59557 1 99 18:13 pts/2 00:01:21 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre/bin/java -Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true -nacos.member.list= -Djava.ext.dirs=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre/jre/lib/ext:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre/lib/ext -Xloggc:/opt/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/opt/nacos/plugins/health,/opt/nacos/plugins/cmdb -Dnacos.home=/opt/nacos -jar /opt/nacos/target/nacos-server.jar --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/opt/nacos/conf/ --logging.config=/opt/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288 nacos.nacos
- root 59790 58631 0 18:14 pts/2 00:00:00 grep --color=auto nacos

(6)访问
访问 localhost:8848/nacos
http://192.168.204.200:8848/nacos

输入账户密码
默认账号密码 nacos/nacos

进入系统

查看节点列表

(1)开放3306端口
查看,没有iptables
- [root@localhost bin]# cd /etc/sysconfig
- [root@localhost sysconfig]# ls
- anaconda cgred ebtables-config ip6tables-config ksm network qemu-ga rpcbind samba sysstat
- atd chronyd fcoe iptables-config libvirtd network-scripts radvd rpc-rquotad saslauthd sysstat.ioconf
- authconfig console firewalld irqbalance man-db nfs raid-check rsyncd selinux virtlockd
- autofs cpupower grub kdump modules ntpd rdisc rsyslog smartmontools virtlogd
- cbq crond init kernel netconsole ntpdate readonly-root run-parts sshd wpa_supplicant

(2)创建文件
[root@localhost sysconfig]# vim iptables
![]()
- # Firewall configuration written by system-config-firewall
-
- # Manual customization of this file is not recommended.
-
- *filter
-
- :INPUT ACCEPT [0:0]
-
- :FORWARD ACCEPT [0:0]
-
- :OUTPUT ACCEPT [0:0]
-
- -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-
- -A INPUT -p icmp -j ACCEPT
-
- -A INPUT -i lo -j ACCEPT
-
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 8848 -j ACCEPT
-
- -A INPUT -j REJECT --reject-with icmp-host-prohibited
-
- -A FORWARD -j REJECT --reject-with icmp-host-prohibited
-
- COMMIT

(3)安装服务
[root@localhost sysconfig]# yum install iptables-services

(4)设置开机启动
[root@localhost sysconfig]# systemctl enable iptables

(5)重启网络
[root@localhost sysconfig]# service iptables restart

(6)查看开放的端口
- [root@localhost sysconfig]# iptables -L -n
- Chain INPUT (policy ACCEPT)
- target prot opt source destination
- ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
- ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
- ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
- ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
- ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306
- ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8848
- REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
-
- Chain FORWARD (policy ACCEPT)
- target prot opt source destination
- REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
-
- Chain OUTPUT (policy ACCEPT)
- target prot opt source destination

(1) 查看数据库状态

(2)模块一修改配置文件
application.yml

- server:
- port: 8000
- # address: 0.0.0.0
-
- spring:
- application:
- name: order-service
-
- cloud:
- nacos:
- discovery:
- server-addr: 192.168.204.200:8848
-
- datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://127.0.0.1:3306/cloud_order?useUnicode=true&characterEncoding=utf-8&useSSL=false
- username: root
- password: Admin@123
-
- # 控制台输出sql、下划线转驼峰
- mybatis:
- configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
- map-underscore-to-camel-case: true

(3) 模块二修改配置文件
application.yml
配置文件与模块一基本相同,端口修改为9000
- server:
- port: 9000
-
- spring:
- application:
- name: video-service
-
- datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://127.0.0.1:3306/cloud_video?useUnicode=true&characterEncoding=utf-8&useSSL=false
- username: root
- password: Admin@123
-
- cloud:
- nacos:
- discovery:
- server-addr: 192.168.204.200:8848
-
- mybatis:
- configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
- map-underscore-to-camel-case: true
(3)微服务进行Debug

运行



查看

(4)Nacos查看服务列表

(1)报错

(2)原因分析
编辑 /etc/profile文件错误,造成环境变量丢失。
(3)解决方法
重新申明。
[root@localhost etc]# export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
![]()
成功:

(1)报错
- [root@localhost etc]# mvn -v
- The JAVA_HOME environment variable is not defined correctly
- This environment variable is needed to run this program
- NB: JAVA_HOME should point to a JDK not a JRE

(2)原因分析
检查 apache-maven-3.x.x/bin下的mvn脚本

发现如果有定义$JAVA_HOME的话,则将变量JAVACMD定义为$JAVA_HOME\bin\java.exe

系统默认是openJDk1.8.0,查看java路径
- [root@localhost bin]# which java
- /usr/bin/java
- [root@localhost bin]# ls -lr /usr/bin/java
- lrwxrwxrwx. 1 root root 22 10月 13 10:08 /usr/bin/java -> /etc/alternatives/java
- [root@localhost bin]# ls -lrt /etc/alternatives/java
- lrwxrwxrwx. 1 root root 73 10月 13 10:08 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre/bin/java
- [root@localhost bin]# vim etc/profile
- [root@localhost bin]# vim /etc/profile
- [root@localhost bin]# source /etc/profile

错误的将/etc/profile将JAVA_HOME设置成 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre/bin/java
(3)解决方法
修改/etc/profile的JAVA_HOME与mvn相匹配
- export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre
- export MAVEN_HOME=/usr/local/apache-maven-3.5.0
- export PATH=$PATH:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/bin:$MAVEN_HOME/bin

成功:
[root@localhost bin]# mvn -v

(1)报错
- [root@localhost bin]# sh startup.sh -m standalone
- which: no javac in (/usr/local/src/apache-maven-3.5.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
- readlink: 缺少操作数
- Try 'readlink --help' for more information.
- dirname: 缺少操作数
- Try 'dirname --help' for more information.
- ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! !!

(2)原因分析
java环境配置错误
(3)解决方法
修改/etc/profile的JAVA_HOME与mvn相匹配
- export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre
- export MAVEN_HOME=/usr/local/apache-maven-3.5.0
- export PATH=$PATH:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/bin:$MAVEN_HOME/bin

成功:
[root@localhost bin]# sh startup.sh -m standalone

(1)报错
- [root@localhost sysconfig]# service iptables restart
- Redirecting to /bin/systemctl restart iptables.service
- Failed to restart iptables.service: Unit not found.

(2)原因分析
需要安装iptables-service。
(3)解决方法
安装iptables-service,会报错。
[root@localhost sysconfig]# yum install iptables-service

执行
- [root@localhost sysconfig]# systemctl stop firewalld
- [root@localhost sysconfig]# systemctl mask firewalld

成功:

(1)systemctl enable
- 这个命令会在/etc/systemd/system/目录下创建需要的符号链接,表示服务需要进行启动。通过stdout输出的信息可以看到,软连接实际指向的文件为/usr/lib/systemd/system/目录中的文件,实际起作用的也是这个目录中的文件。
-
- [root@localhost system]# systemctl enable NetworkManager
- Created symlink from /etc/systemd/system/multi-user.target.wants/NetworkManager.service to /usr/lib/systemd/system/NetworkManager.service.
- Created symlink from /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service to /usr/lib/systemd/system/NetworkManager-dispatcher.service.
- Created symlink from /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service to /usr/lib/systemd/system/NetworkManager-wait-online.service.
(2)systemctl disable
- 在执行systemctl disable xxx的时候,实际只是删除了软连接,并不会产生其他影响。
-
- [root@localhost system]# systemctl disable NetworkManager
- Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
- Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
- Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
- Removed symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
(3)systemctl mask
- 执行 systemctl mask xxx会屏蔽这个服务。它和systemctl disable xxx的区别在于,前者只是删除了符号链接,后者会建立一个指向/dev/null的符号链接,这样,即使有其他服务要启动被mask的服务,仍然无法执行成功。
-
- [root@localhost system]# systemctl start NetworkManager
- Failed to start NetworkManager.service: Unit is masked.
(4)区别
- 1)使用disable的话,可以正常启动服务。总体来看,disable和enable是一对操作,是用来启动、停止服务。
-
- 2)使用了mask,要想重新启动服务,必须先执行unmask将服务取消屏蔽。mask和unmask是一对操作,用来屏蔽和取消屏蔽服务。
(1)报错
spring-boot-maven-plugin爆红
-
-
-
-
org.springframework.boot -
spring-boot-maven-plugin -
-
true -
true -
-
-
-
(2)原因分析
settings文件未配置阿里云镜像,或者是没有指定jar包下载位置。
maven工程未修改settings文件地址,或者是未修改jar包加载地址。
未加载版本号。
(3)解决方法
配置阿里云镜像,修改settings文件地址
打开IntelliJ IDEA->Settings ->Build, Execution, Deployment -> Build Tools > Maven

搜索Maven

根据路径创建setting.xml

Visual Studio 创建xml文件
"http://maven.apache.org/SETTINGS/1.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
- http://maven.apache.org/xsd/settings-1.0.0.xsd">
-
-
-
-
-
-
-
-
- <id>aliyunmaven
-
central -
阿里云公共仓库 -
https://maven.aliyun.com/repository/central -
-
- <id>repo1
-
central -
central repo -
http://repo1.maven.org/maven2/ -
-
- <id>aliyunmaven
-
apache snapshots -
阿里云阿帕奇仓库 -
https://maven.aliyun.com/repository/apache-snapshots -
-
-
-
-
-
-
-
- <id>aliyunmaven
-
aliyunmaven -
https://maven.aliyun.com/repository/public -
default -
-
true -
-
-
true -
-
-
- <id>MavenCentral
-
http://repo1.maven.org/maven2/ -
-
- <id>aliyunmavenApache
-
https://maven.aliyun.com/repository/apache-snapshots -
-
-
-

查看

查看官方仓库
IDEA给项目pom.xnl添加依赖项,构建的插件添加版本
- ……
-
-
-
org.springframework.boot -
spring-boot-maven-plugin -
2.3.3.RELEASE -
-
-
-
-
-
-
-
-
-
-
org.springframework.boot -
spring-boot-maven-plugin -
2.3.3.RELEASE -
-
true -
true -
-
-
-
-

(1) 报错
控制台打印java找不到符号 符号:类xxx 位置xxx

(2)原因分析
原因一:
-
- 在运行 Spring Boot 时报错,使用idea的maven打了jar包,之后运行程序后上述错误。
-
-
原因二:
- 类Xxx的编码和引用类Xxx或引用类Xxx中方法的类的编码不一样。
- 例如:Xxxfunction.java的编码是GBK,而引用它的类的编码是UTF-8
(3)解决方法
导入类

import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
![]()
(1)规则一
- server.address 为对应机器ip地址时 ,如 101.12.x.x
- 此时访问该服务只能使用 ip 访问 。
(2)规则二
- erver.address 配置为0.0.0.0
-
- 在服务器中,0.0.0.0并不是一个真实的的IP地址,它表示本机中所有的IPV4地址。监听0.0.0.0的端口,就是监听本机中所有IP的端口。如果想让springboot 应用通过外网ip可以访问,一般情况,将server.address 配置为 0.0.0.0 即可。

(3)规则三
- 配置为 127.0.0.1 时,可以使用 localhost 和 127.0.0.1访问。但是不能使用 ip 访问。
- 如果不配置server.address 属性,则默认为127.0.0.1,所以默认规则是规则3。

(1)地址
- 阿里云:http://maven.aliyun.com/
-
- 中央仓库:https://repo1.maven.org/maven2/
-
- 网易:http://maven.netease.com/repository/public/
-
- 华为云:https://repo.huaweicloud.com/repository/maven/
-
- tencent:https://mirrors.cloud.tencent.com/repository/maven/
-
- 中国科技大学:http://mirrors.ustc.edu.cn/maven/maven2/
-
- 南京大学:http://maven.nju.edu.cn/repository/
-
- 清华大学:https://repo.maven.apache.org/maven2/
-
- 北京理工大学:http://mirror.bit.edu.cn/maven/
-
- 东软信息学院:https://mirrors.neusoft.edu.cn/maven2/
-
- 中国科学院开源协会:http://maven.opencas.cn/maven/
-
- 北京交通大学:http://maven.bjtu.edu.cn/maven2/
(2)设置
-
- <id>aliyun
-
http://maven.aliyun.com/ -
central -
-
- <id>central
-
https://repo1.maven.org/maven2/ -
central -
-
- <id>netease
-
http://maven.netease.com/repository/public/ -
central -
-
- <id>huaweicloud
-
https://repo.huaweicloud.com/repository/maven/ -
central -
-
- <id>tencent
-
https://mirrors.cloud.tencent.com/repository/maven/ -
central -
-
- <id>ustc
-
http://mirrors.ustc.edu.cn/maven/maven2/ -
central -
-
- <id>nju
-
http://maven.nju.edu.cn/repository/ -
central -
-
- <id>tsinghua
-
https://repo.maven.apache.org/maven2/ -
central -
-
- <id>bit
-
http://mirror.bit.edu.cn/maven/ -
central -
-
- <id>neusoft
-
https://mirrors.neusoft.edu.cn/maven2/ -
central -
-
- <id>opencas
-
http://maven.opencas.cn/maven/ -
central -
-
- <id>bjtu
-
http://maven.bjtu.edu.cn/maven2/ -
central -
(1)报错
The server time zone value '?й???????' is unrecognized or represents more than one time zone
(2)原因分析
最新版本的mysql数据库,会提示版本驱动过旧的情况
(3)解决方法
方法一:在项目代码-数据库连接URL后,加上 ?serverTimezone=UTC(注意大小写必须一致)
url: jdbc:mysql://127.0.0.1:3306/cloud_order? ?serverTimezone=UTC
方法二:在mysql中设置时区,默认为SYSTEM(推荐)
- set global time_zone=’+8:00’
-
