mysql - Spring Boot 和 MySql - 无法使用新的服务数据库用户名/密码

标签 mysql spring-boot docker jenkins

如何更改数据库用户密码以便Spring Boot应用程序仍然可以使用数据库?环境是Docker和Jenkins。

将密码从“password1”更改为“password2”不起作用。 Sprint Boot 应用程序无法连接到 (MySql) 数据库。错误是:由于用户凭据无效而无法连接。

我的环境包括:

1 - 我的 docker-compose.yml 我有:

services:
  xyzdb:
    image: mysql:8.0.12
    environment:
      - MYSQL_ROOT_PASSWORD=admin
      - MYSQL_DATABASE=geosoldatabase
      - MYSQL_USER=johan
      - MYSQL_PASSWORD=${LOCAL_MYSQL_PASSWORD}
    volumes:
      - /var/mysql-data:/var/lib/mysql
    ports:
      - "3306:3306"
Etc. 

2 - Spring Boot apllication.properties 文件包含:

spring.datasource.url = jdbc:mysql://xyxdb:3306/geosoldatabase
spring.datasource.username = johan
spring.datasource.password = bladiebladiebla  <== very first password

3 - 要更改密码,我执行了以下操作:

  • 通过进入数据库docker容器更改用户密码并更改名称:
ALTER USER 'johan'@'%' IDENTIFIED BY 'xyzabc123';
ALTER USER 'johan' IDENTIFIED WITH mysql_native_password BY 'xyzabc123';
Commit; 
flush privileges;
  • 更新了 Jenkins 系统环境中的 2 个环境变量
LOCAL_MYSQL_PASSWORD=xyzabc123
SPRING.DATASOURCE.PASSWORD=xyzabc123

这不起作用。启动 Spring Boot 应用程序(重新启动 Jenkins 后)因无法使用用户名连接到数据库而失败。密码错误。

当我将所有 3 个更新(上述 2 点)更改回初始密码时,一切正常。

我忘记了什么?

最佳答案

几个月来,没有提出任何解决方案。这是一个信号。

几个月以来,我一直在使用 MySQL 的 Docker 版本。效果很好。还没有问题。

“好的”解决方法是通过 Docker 使用 MySQL。

关于mysql - Spring Boot 和 MySql - 无法使用新的服务数据库用户名/密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53794976/

相关文章:

php - 在数据表中列出 [Laravel] [查询生成器]

docker - 将日志从Docker容器发送到FluentD

docker - 是否可以重用Docker多阶段构建中另一个阶段的镜像?

javascript - 如何根据下拉选择和按钮单击从 MySql 数据库中检索数据?

在行中插入数据时自动填充 TIME 的 MySQL 列

java - 如何手动描述 java @RequestBody Map<String, String> 的示例输入?

java - :if statement in Thymeleaf 的 OR 条件

java - Spring Boot 应用程序的 POM

Docker Compose 包含选项 : (root) Additional property include is not allowed

php - Codeigniter 插入 MySql 表具有自动递增 ID 的位置?