关于作者我是星河一个深耕自己不内耗的长期主义者。一个对技术充满激情对工作对生活充满热情的热血青年。坚信真正能让大家看懂的技术文章才是好文章坚持用更通俗易懂的大白话写技术博文并会持续更新。我是星河愿我们既能凝望脚下的路也能心怀璀璨的远方。和之前一样今天还是用通俗易懂的大白话来写点我自己的理解和总结。今天来讲一下Docker启动Nacos 报 No Database set错的问题整体分析该错误通常是由于Nacos启动时依赖的MySQL数据库尚未完全启动所致。本文将给出两种解决方法1、调整启动顺序确保MySQL完全启动后再启动Nacos2、若仍报错建议先用MySQL客户端连接访问MySQL的nacos库之后再启动nacos下面是具体分析一、问题分析其实这个问题非常简单因为nacos启动时需要依赖mysql数据库里的nacos库所以必须先等mysql完全启动完成了然后再使用docker启动Nacos但是如果你的docker设置了开机自启并且docker里的mysql和nacos你也设置了开机自启那你虚拟机一开机docker里的mysql和nacos会一起启动那你启动的nacos的时候mysql就可能还没启动好。所以就会报No Database set的错。或者也有可能你没开机自启但是你使用docker去启动时没等msyql完全启动好你就去启动nacos了也会报这个错。二、解决知道了问题的原因那解决就很简单了如果你是开机自启的那打开虚拟机后先把nacos stop了docker stop nacos然后再重新启动一下nacos但前提还是此时你的mysql必须完全启动好了docker start nacos然后再使用以下命令查看一下nacos的启动日志docker logs -f nacos这时候看nacos的日志应该就不报那个错了。但是有时候严格的按照这个顺序启动之后有可能还会报这个错那就继续进行下边的操作三、如果还报错尝试这个方法如果严格的按照这个顺序启动之后还报这个错那就继续进行下边的操作再次把nacos停掉docker stop nacos然后使用任意一个连接mysql的客户端工具比如datagrip或者Navicat。使用这种客户端工具连接上你的mysql然后连接并打开nacos这个库再随便双击打开里边的任意一个表反正只要查询一下你mysql里nacos这个库的任意数据就行如下图然后你再启动nacos发现就不报错了我分析大概的原因是你mysql启动后在naocs启动前至少需要建立连接访问过一次不要让nacos在启动过程中作为第一个建立连接去访问mysql的人不然就报错。这个具体的原因nacos官方目前也没给准确的回复不过咱们不需要在这花太多时间和精力只要能解决目前的问题就好了。ok就写到这吧希望我写的这篇可以帮你解决这个问题。纯手敲 原创不易如果这篇文章对你有所启发或帮助希望可以花费你一秒钟的时间点亮【赞和推荐】如果能点【分享】给更多同行的人那就更好了。你的每一个互动都是我持续创作的最大动力。感恩遇见感谢陪伴。点击下方 微信公众号 获取更多Java干货