Nacos连接MySql8

一、前言

Nacos 使用MySql8存储数据。

这里会描述 Docker 中的 Nacos 服务配置,服务器直接部署配置比较简单。

版本

  • Nacos2.0.3
  • MySql8

二、配置

指定当前服务器 Docker ip

查看 docker 网络模式

1
docker network ls

创建新的 bridge 网络

1
docker network create --driver bridge --subnet=172.2.2.0/16 --gateway=172.2.1.1 mynet

查看网络信息

1
docker network inspect mynet

创建容器并指定IP

1
docker run -e TZ="Asia/Shanghai" --privileged -itd  --name redis-demo --network=mynet --ip 172.2.12.1 redis /usr/sbin/init

docker-compose指定IP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
version: '2'
services:
nginx:
image: nginx:1.13.12
container_name: nginx
restart: always
tty: true
networks:
extnetwork:
ipv4_address: 172.2.12.3
networks:
# 自定义的网络名称
extnetwork:
ipam:
config:
- subnet: 172.2.12.0/16
gateway: 172.2.1.1

删除网路模式

1
docker network rm mynet

docker-compose.yml方式配置

/plugins/mysql/目录下放的是 /plugins/mysql/mysql-connector-java-8.0.21.jar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: '3.9'
services:
nacos:
image: nacos/nacos-server:2.0.3
container_name: nacos-standalone-mysql
env_file:
- ./env/nacos-standlone-mysql.env
volumes:
- ./standalone-logs/:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
- ./plugins/mysql/:/home/nacos/plugins/mysql/
ports:
- "8848:8848"
- "9848:9848"
- "9555:9555"
restart: always
networks:
mynet:
ipv4_address: 172.2.2.2

networks:
mynet:
external: true

NacosMySql数据库脚本

nacos-standlone-mysql.env

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PREFER_HOST_MODE=hostname
MODE=standalone
# 项目地址
SERVER_SERVLET_CONTEXTPATH=/nacos
# 端口
NACOS_APPLICATION_PORT=8848
MYSQL_DATABASE_NUM=1
SPRING_DATASOURCE_PLATFORM=mysql
# 本机的IP 地址
MYSQL_SERVICE_HOST=192.168.2.1
MYSQL_SERVICE_DB_NAME=nacos_db
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=nacos
MYSQL_SERVICE_PASSWORD=nacos
#MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
MYSQL_SERVICE_DB_PARAM=charset=utf8mb4&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=GMT%2B8&useUnicode=true&useSSL=false

custom.properties

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for prometheus
management.endpoints.web.exposure.include=*

# metrics for elastic search
#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200

# metrics for influx
#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true

附:

docker下的 nacos 属性配置列表

属性名称 描述 选项
MODE 系统启动方式: 集群/单机 cluster/standalone默认 cluster
NACOS_SERVERS 集群地址 p1:port1空格ip2:port2 空格ip3:port3
PREFER_HOST_MODE 支持IP还是域名模式 hostname/ip 默认 ip
NACOS_SERVER_PORT Nacos 运行端口 默认 8848
NACOS_SERVER_IP 多网卡模式下可以指定IP
SPRING_DATASOURCE_PLATFORM 单机模式下支持MYSQL数据库 mysql / 空 默认:空
MYSQL_SERVICE_HOST 数据库 连接地址
MYSQL_SERVICE_PORT 数据库端口 默认 : 3306
MYSQL_SERVICE_DB_NAME 数据库库名
MYSQL_SERVICE_USER 数据库用户名
MYSQL_SERVICE_PASSWORD 数据库用户密码
MYSQL_SERVICE_DB_PARAM 数据库连接参数 default : characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
MYSQL_DATABASE_NUM It indicates the number of database 默认 :1
JVM_XMS -Xms 默认 :1g
JVM_XMX -Xmx 默认 :1g
JVM_XMN -Xmn 默认 :512m
JVM_MS -XX:MetaspaceSize 默认 :128m
JVM_MMS -XX:MaxMetaspaceSize 默认 :320m
NACOS_DEBUG 是否开启远程DEBUG y/n 默认 :n
TOMCAT_ACCESSLOG_ENABLED server.tomcat.accesslog.enabled 默认 :false
NACOS_AUTH_SYSTEM_TYPE 权限系统类型选择,目前只支持nacos类型 默认 :nacos
NACOS_AUTH_ENABLE 是否开启权限系统 默认 :false
NACOS_AUTH_TOKEN_EXPIRE_SECONDS token 失效时间 默认 :18000
NACOS_AUTH_TOKEN token 默认 :SecretKey012345678901234567890123456789012345678901234567890123456789
NACOS_AUTH_CACHE_ENABLE 权限缓存开关 ,开启后权限缓存的更新默认有15秒的延迟 默认 : false
MEMBER_LIST 通过环境变量的方式设置集群地址 例子:192.168.16.101:8847?raft_port=8807,192.168.16.101?raft_port=8808,192.168.16.101:8849?raft_port=8809
EMBEDDED_STORAGE 是否开启集群嵌入式存储模式 embedded 默认 : none
NACOS_AUTH_CACHE_ENABLE nacos.core.auth.caching.enabled default : false
NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE nacos.core.auth.enable.userAgentAuthWhite default : false
NACOS_AUTH_IDENTITY_KEY nacos.core.auth.server.identity.key default : serverIdentity
NACOS_AUTH_IDENTITY_VALUE nacos.core.auth.server.identity.value default : security
NACOS_SECURITY_IGNORE_URLS nacos.security.ignore.urls default : /,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**

本文地址: https://github.com/maxzhao-it/blog/post/56649/