单机Nacos重新启动,配置中心文件没了--Docker下Nacos通过MySQL实现持久化

最近服务器内存资源很紧张,导致Linux开启了进程杀手,随机杀死进程。最近再看Nacos Issues时看到一个问题提到Docker部署Nacos重新启动,配置中心的文件丢失了:
因为存储默认是内嵌的内存数据库,生产环境需要配置持久化(mysql),赶紧给服务器上的nacos补救下

在配置前先备份下配置文件,等等别没配置好,文件没了

单机Nacos重新启动,配置中心文件没了--Docker下Nacos通过MySQL实现持久化_第1张图片
MySQL 创建数据库,里面没有任何东西
单机Nacos重新启动,配置中心文件没了--Docker下Nacos通过MySQL实现持久化_第2张图片
schema.sql 是 Derby 数据库的脚本,nacos-mysql.sql 才是 MySQL 的,如果docker里没有,这里给一个链接 : nacos-mysql.sql
先把脚本在新建的数据库执行

单机Nacos重新启动,配置中心文件没了--Docker下Nacos通过MySQL实现持久化_第3张图片

进入nacos docker exec -it nacos bash,修改 /conf/application.properties 的DB配置

# db mysql
spring.datasource.platform=mysql # 这个配置把上面的删了。。配在这里顺眼
db.num=1
db.url.0=jdbc:mysql://47.92.86.79:3306/nacos2db?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

修改后重启
在这里插入图片描述
建议不要使用restart命令,缓存数据一直没删掉,mysql一直没配置成功。。

# nacos 是我的nacos镜像容器名
docker stop nacos 
docker start nacos

看结果
单机Nacos重新启动,配置中心文件没了--Docker下Nacos通过MySQL实现持久化_第4张图片

单机Nacos重新启动,配置中心文件没了--Docker下Nacos通过MySQL实现持久化_第5张图片

参考资料

Nacos支持三种部署模式

你可能感兴趣的:(运维,微服务)