下载地址:链接:https://pan.baidu.com/s/1WlsV_n7eJXMWZVCWyAXCzw 提取码:hfxc
环境准备:
执行解压,如下:
tar -xvf nacos-server-0.9.0.tar.gz
如图:
在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:
1.安装数据库,版本要求:5.6.5+
2.初始化mysql数据库
3.修改nacos/conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://121.52.33.213:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
注:
再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql
vim /lib/systemd/system/nacos.service
添加如下:
[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nacos/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/nacos/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存退出后,执行以下命令
systemctl daemon-reload
systemctl enable nacos.service
systemctl start nacos.service
浏览器登陆:http://127.0.0.0:8848/nacos,用户名:nacos,密码nacos,如下即安装成功
按照官方文档的启动方式,windows系统下可以实现正常启动,但是在linux下出现了上述的情况,启动失败,抛出的异常如下:
2019-01-18 20:39:21,965 ERROR read cluster conf fail
java.io.FileNotFoundException: /home/test/nacos/conf/cluster.conf (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.(FileInputStream.java:138)
at com.alibaba.nacos.common.util.SystemUtils.readClusterConf(SystemUtils.java:157)
at com.alibaba.nacos.core.listener.StartingSpringApplicationRunListener.logClusterConf(StartingSpringApplicationRunListener.java:129)
at com.alibaba.nacos.core.listener.StartingSpringApplicationRunListener.contextPrepared(StartingSpringApplicationRunListener.java:79)
at org.springframework.boot.SpringApplicationRunListeners.contextPrepared(SpringApplicationRunListeners.java:60)
at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:391)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:331)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1277)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1265)
at com.alibaba.nacos.Nacos.main(Nacos.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
2019-01-18 20:39:22,980 INFO Nacos is starting...
2019-01-18 20:39:23,980 INFO Nacos is starting...
2019-01-18 20:39:24,999 INFO Nacos is starting...
2019-01-18 20:39:26,000 INFO Nacos is starting...
由于启动的默认由cluster改成了standalone单机启动模式,但是启动仍然是集群模式启动,并且抛出上述找不到cluster.conf文件。
将官方的启动命令
sh startup.sh -m standalone
替换为
bash startup.sh -m standalone
nohup bash startup.sh -m standalone & #后台启动
原因是:bash与sh是有区别的,两者是不同的命令,且bash是sh的增强版,而"[[]]"是bash脚本中的命令,因此在执行时,使用sh命令会报错。因而是因为startup.sh文件中的[[ ]] 的问题,sh命令并不能识别,只有bash才行;
另外一种办法是将dash启动改为bash启动(ubuntu默认采用dash,也是导致整个问题的原因!),方法如下:
查看与使用
先用命令ls -l /bin/sh 看看
结果是: /bin/sh -> dash
我们会发现Ubuntu默认采用的是 dash
如果要修改默认的sh,可以采用命令
sudo dpkg-reconfigure dash
然后选择【否】
成功后再执行ls -l /bin/sh 看看
结果是: /bin/sh -> bash
修改成功!
当然我们也可以使用
sudo dpkg-reconfigure dash
把sh修改回去
设置后即可启动。