实验环境
-
操作系统
[root@localhost server]# cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core) -
局域网IP
192.168.47.20
-
Nacos版本
nacos-server-1.1.4
-
JDK版本
[root@localhost src]# java -version
java version “1.8.0_201”
Java™ SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot™ 64-Bit Server VM (build 25.201-b09, mixed mode) -
MySQL版本
5.7.28
Nacos单机安装
- 安装包下载地址
https://github.com/alibaba/nacos
- 安装包准备
tar -zxvf nacos-server-1.1.4.tar.gz mkdir /application/server/ -p mv nacos /application/server/nacos-server-1.1.4 ln -s /application/server/nacos-server-1.1.4/ /application/server/nacos
[root@localhost src]# ll /application/server/ total 0 lrwxrwxrwx 1 root root 39 Dec 29 13:50 nacos -> /application/server/nacos-server-1.1.4/ drwxr-xr-x 5 root root 72 Dec 29 13:50 nacos-server-1.1.4
- 启动Nacos
./startup.sh -m standalone
- 检查是否启动成功
查看端口(8848)是否启动成功
浏览器访问[root@localhost bin]# netstat -ntlp |grep 8848 tcp6 0 0 :::8848 :::* LISTEN 1485/java
初始登录信息:nacos/nacoshttp://192.168.47.20:8848/nacos/#/login
Nacos安装配置
开机自启
- 添加nacos.service文件
vim /lib/systemd/system/nacos.service[Unit] Description=nacos After=network.target [Service] Type=forking ExecStart=/application/server/nacos/bin/startup.sh -m standalone ExecReload=/application/server/nacos/bin/shutdown.sh ExecStop=/application/server/nacos/bin/shutdown.sh PrivateTmp=true [Install] WantedBy=multi-user.target
- 加入Nacos服务
systemctl daemon-reload
- 设置开机自启
systemctl enable nacos.service
- 启动/停止
systemctl start nacos.service systemctl stop nacos.service
支持MySQL
-
MySQL数据库安装
自行安装,版本要求:5.6.5+
-
创建数据库连接信息
创建数据库nacoscreate database nacos DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
创建用户名和密码
CREATE USER 'nacos'@'192.168.47.%' IDENTIFIED BY '123456';
赋权
grant ALL PRIVILEGES on nacos.* to 'nacos'@'192.168.47.%';
-
初始化数据库文件
在Nacos的conf目录下找到nacos-mysql.sql文件,在创建的nacos库中执行sql文件mysql> use nacos; Database changed mysql> show tables; +----------------------+ | Tables_in_nacos | +----------------------+ | config_info | | config_info_aggr | | config_info_beta | | config_info_tag | | config_tags_relation | | group_capacity | | his_config_info | | roles | | tenant_capacity | | tenant_info | | users | +----------------------+ 11 rows in set (0.00 sec)
-
修改nacos server application.properties配置文件
修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码#database mysql spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://192.168.47.20:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=nacos db.password=123456
错误归集
服务启动报错
-
错误描述:
[root@localhost ~]# systemctl start nacos.service Job for nacos.service failed because the control process exited with error code. See "systemctl status nacos.service" and "journalctl -xe" for details. [root@localhost ~]# systemctl status nacos.service ● nacos.service - nacos Loaded: loaded (/usr/lib/systemd/system/nacos.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Sun 2019-12-29 14:08:15 CST; 4s ago Process: 1835 ExecStart=/application/server/nacos/bin/startup.sh -m standalone (code=exited, status=1/FAILURE) Dec 29 14:08:15 localhost.localdomain startup.sh[1835]: which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin) Dec 29 14:08:15 localhost.localdomain startup.sh[1835]: readlink: missing operand Dec 29 14:08:15 localhost.localdomain startup.sh[1835]: Try 'readlink --help' for more information. Dec 29 14:08:15 localhost.localdomain systemd[1]: nacos.service: control process exited, code=exited status=1 Dec 29 14:08:15 localhost.localdomain startup.sh[1835]: dirname: missing operand Dec 29 14:08:15 localhost.localdomain startup.sh[1835]: Try 'dirname --help' for more information. Dec 29 14:08:15 localhost.localdomain systemd[1]: Failed to start nacos. Dec 29 14:08:15 localhost.localdomain startup.sh[1835]: ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or l...tter! !! Dec 29 14:08:15 localhost.localdomain systemd[1]: Unit nacos.service entered failed state. Dec 29 14:08:15 localhost.localdomain systemd[1]: nacos.service failed. Hint: Some lines were ellipsized, use -l to show in full.
-
错误原因
nacos是有java开发而成,在启动的时候需要JDK版本1.8,在系统环境中已经配置了JAVA_HOME,但是在service脚本中,会从(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin这些路径中寻找javac,只需要将我们自己的java目录软链接到/usr/bin/java即可
-
错误解决
查看java安装位置[root@localhost ~]# which javac /usr/local/java/jdk1.8.0_201/bin/javac
建立软链接
ln -s /usr/local/java/jdk1.8.0_201/bin/javac /usr/bin/javac
如果还是无法启动找不到javac,将javac设置为可执行
chmod +x /usr/local/java/jdk1.8.0_201/bin/javac