category
技术分享
date
Jul 31, 2022
icon
Origin
password
slug
StrangeQuestionTwo
status
Published
summary
一次避坑指南
tags
Tags
type
Post
现有设备:
系统: macos
软件: Docker、Nacos、Mysql
问题:
Nacos更改数据库,从内置的Derby改为Mysql数据库是一件非常普遍的操作,也是Nacos持久化中很重要的一环。但是我目前的设备是myqsl和nacos都是用Docker启动的,这里面有一个大坑,让我搞了好久。在此记录一下。
步骤:
Mysql新建Nacos数据库:
create database nacos_config初始化数据库,导入初始化文件nacos-db.sql:
获取Docker内Mysql的地址IP:
这一条非常重要‼️ 这一条非常重要‼️ 这一条非常重要‼️
新启动一个终端,查找Docker内Mysql的地址:
docker inspect mysql(容器名)
在这里我们可以看到,IPAddress字段,Copy这个地址,放到下面application.properties文件中的地址里面。

更改Nacos配置:
如果你使用的是Docker软件的话,我比较推荐使用,软件的方式打开控制台,还挺方便的。也可以使用命令行的方式进入容器内部。这个我就不细讲了。因为我是M1pro芯片,因为架构不同,所以使用的Nacos版本也会不同。具体如下:

点击CLI按钮,弹出终端:

默认是直接进入/bin目录下面的,接下路输入:
cd conf

然后编辑 application.properties文件:
vim application.properties
具体如下:
上面红字的部分是你需要更改的。更改之后启动Nacos,会发现启动成功。不会报出 No DataSource set的错误。
总结:
一直以来我使用Docker中的Mysql 数据库访问的都是0.0.0.0:3306这个地址端口。但是这应该是外部访问容器内的地址。容器内的两个应用互相访问应该是不同的。应该先获取Mysql的地址然后再去配置。这个问题花费了我很多时间,在此做一个记录,希望可以帮助用同样问题的朋友。
- 作者:LiuJixue
- 链接:https://liujixue.cn/article/StrangeQuestionTwo
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。







