mysql版本:8.0.32
nacos版本:2.2.0
ps: 2.2.0以上版本开启 nacos.core.auth.enabled=true 验证之后有个key value 必填觉得麻烦使用2.2.0的版本
持久化yml文件:
spring.datasource.platform=mysql
spring.sql.init.platform=mysql
#数据库数量
db.num=1
#下标0开始 nacos_config数据库以实际为准
db.url.0=jdbc:mysql://db:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
#账号密码以实际为准
db.user.0=nacos
db.password.0=testNacos
#连接池配置
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
启动镜像后发现:
出现No DataSource set 提示没有这个数据库 然后使用可视化工具发现 账号密码没有错误
查询资料得知 8.0 之后的mysql 密码加密方式不同应该改成 mysql_native_password 此种加密方式
有两种修改加密方式
(一) 进入mysql之后 执行命令
ALTER USER '你的账号'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
(二) 部署mysql时挂载 my.cnf文件 ps [mysqld] 不能省略
[mysqld]
authentication_policy= mysql_native_password
使用 -v 命令将cnf 文件挂载到 容器的/etc/mysql/conf.d目录下面
docker-compose 的写法
重启容器后发现
启动成功如果想要开启账号密码验证
nacos.core.auth.enabled=true 这个地方放开就行