nacos在docker下standalone模式配置本地mysql
写在前面
配置方式分为好几种,如果服务器没有安装mysql并且也不介意把mysql安装在docker的,可以直接参照官网教程
https://nacos.io/zh-cn/docs/quick-start-docker.html,
可以参照后面的步骤将mysql密码等换了
详细步骤
第一步 配置mysql
-
安装mysql
nacos从1.3.1已经将mysql-connector的jar版本换成8.x了,所以支持mysql8.x,只是需要稍许配置,安装mysql,教程参照百度或谷歌,可以安装在本地也可以安装在docker,但要分清mysql在 ‘username’@‘%’ 和‘username’@‘localhost’的密码,不然会毫无意义的反复安装nacos好几个小时。。。
mysql安装完成并通过测试后,可以进入下一步。
-
配置数据库
-
创建一个名为nacos_config的数据库
-
use nacos_config;
-
运行该脚本 :https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql
-
第二步 拷贝并配置nacos项目
使用前确保服务器已经安装docker并能使用docker-compose命令
- 拷贝项目
git clone https://github.com/nacos-group/nacos-docker.git
- 进入项目
cd nacos-server
- 配置信息
-
目录如下
- build中是项目的具体文件,代码等
- env中是环境文件,具体的环境配置就在这里
- example中是官方的一些默认的yaml文件,在使用docker-compose中会用到
-
进入 example
cd example
-
目录如下
如果是mysql5.7的,就选择standalone-mysql-5.7.yaml,如果是8以上的,就选择standalone-mysql-8.yaml
vim standalone-mysql-8.yaml
应当能看到如下图的代码
-
由于我们已经提前部署好了mysql,并不需要docker在运行nacos的时候再下一个MySQL,所有直接把depends_on和后面的所有代码全部注释,当然如果想让它自动重启,可以不注释 restart: always
-
env_file下指向的文件就是待会启动时,standalone-mysql-8.yaml所引用的环境文件,待会也要修改那个文件。
-
volumes下的两个文件就是配置目录挂载,如果熟悉docker的话,也可以换个地方挂载,当然custom.properties文件要拷过去
-
检查prots,看是否需要修改端口和映射到实体机的端口
- 修改env_file
-
在上面提示到的文件下进入上级目录的env下
-
vim nacos-standlone-mysql.env
-
将host、DB_NAME和端口、用户名密码等改成自己的(涂白的部分)
-
运行
cd ../example docker-compose -f ./standalone-mysql-8.yaml up &
-
浏览器打开ip:8848/nacos,即可查看
写在最后
需要注意的是,当然也可以直接用docker run的模式来,如果还有其他的配置,也可以参考https://github.com/nacos-group/nacos-docker/blob/master/README_ZH.md在相应的地方添加配置。
追加docker run模式
- 拉取镜像
docker pull nacos/nacos-server:latest - 输入命令
docker run --env MODE=standalone
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=yourhost
-e MYSQL_SERVICE_PORT=3306
-e MYSQL_SERVICE_DB_NAME=nacos_config
-e MYSQL_SERVICE_USER=root
-e MYSQL_SERVICE_PASSWORD=‘root@yourPassword’
-e MYSQL_SERVICE_DB_PARAM=“characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai” -e
JVM_XMS=512m -e JVM_XMX=512m -e JAM_XMN=256m --name nacos -d -p 8848:8848 nacos/nacos-server
ps: 之所以使用了单双引号是因为密码和连接mysql的连接参数中有特殊字符,当然也可以根本就不指定数据库,但是好像有什么影响还没研究过,数据库请参照上述第一步配置