Nacos数据持久化:
修改Nacos的数据持久化配置为MySQL存储。默认情况下,Nacos使用嵌入式数据库CMDB实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只要支持MySQL的存储
配置Nacos的MySQL存储只需要下面三步:
第一步:安装数据库,版本要求:5.6.5+ (我在centos7.4使用yum安装了mysql-5.7)
第二步:初始化MySQL数据库,数据库初始化文件:nacos-mysql.sql,该文件可以在Nacos程序包下的conf目录下获得。执行完成后可以得到nacos数据库中如下图所示的表结构:
初始化方法:
登录数据库
mysql -uroot -p #回车后输入密码
创建nacos数据库:create database nacos; #nacos-mysql.sql里面默认是创建nacos_config库
use nacos;
source /usr/local/nacos/conf/nacos-mysql.sql;
完成后即可看到nacos库里面的这些表。
第三步:修改conf/application.properties文件,增加支持MySQL数据源配置,添加(目前只支持mysql)数据源的url、用户名和密码。配置样例如下:
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root #使用的mysql用户名
db.password=xxx #使用的mysql连接密码
到这里,Nacos数据存储到MySQL的配置就完成了,可以尝试用单机模式启动Nacos。
单机后台启动nacos命令:
nohup /usr/local/nacos/bin/startup.sh -m standalone >>/dev/null 2>&1 &
第四步:授权数据库。上面配置了增加mysql数据源的支持以后,需要授权连接mysql的具体权限 如:
允许172.16.85.228 使用root账号登录
首先在mysql服务器上登录mysql,然后授权:
grant all privileges on . to ‘root‘@‘172.16.85.228‘ identified by ‘passwd‘;
flush privileges;
如果没有做这一步授权,则启动nacos以后,nacos.log日志会报错,提示数据源没有设置。其实是因为没有授权的原因。
原文地址:https://blog.51cto.com/11288550/2410504