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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot和MySql - 无法使用新的服务数据库用户名/密码相关的知识,希望对你有一定的参考价值。

如何更改数据库用户密码以便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个点中)更改回初始密码时,一切正常。

我忘记了什么?

答案

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

几个月后我使用Dockerized版本的MySQL。这很好。还没有问题。

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

以上是关于Spring Boot和MySql - 无法使用新的服务数据库用户名/密码的主要内容,如果未能解决你的问题,请参考以下文章

使用 docker-compose 无法在同一网络中连接 mysql 和 spring boot

Docker:无法连接 Spring Boot 和 MYSQL

我无法使用 Spring Boot 和 JPA 连接到 mysql 数据库

无法使用Spring Boot创建一个mysql数据库

Spring Boot + MySQL + Docker Compose - 无法使 Spring Boot 连接到 MySQL

使用嵌入式 tomcat 未在 Spring Boot 中映射请求