Java 具有docker compose的MySQL:拒绝用户访问';根'@';172.22.0.1';每隔24小时
我有一个使用docker compose的Java应用程序。我有由docker compose连接的MySQL数据库 当我在docker上运行我的应用程序时,Java 具有docker compose的MySQL:拒绝用户访问';根'@';172.22.0.1';每隔24小时,java,mysql,docker,docker-compose,Java,Mysql,Docker,Docker Compose,我有一个使用docker compose的Java应用程序。我有由docker compose连接的MySQL数据库 当我在docker上运行我的应用程序时,CMD:docker compose-up--build一切都很好!但在~24小时后,我得到如下异常。你能告诉我哪里有问题吗 docker_application | com.mysql.cj.exceptions.CJException: Access denied for user 'root'@'172.22.0.1
CMD:docker compose-up--build
一切都很好!但在~24小时后,我得到如下异常。你能告诉我哪里有问题吗
docker_application | com.mysql.cj.exceptions.CJException: Access denied for user 'root'@'172.22.0.1' (using password: YES)
docker_application | at sun.reflect.GeneratedConstructorAccessor98.newInstance(Unknown Source) ~[na:na]
docker_application | at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_212]
docker_application | at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_212]
docker_application | at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:129) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:816) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:741) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:709) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:132) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:540) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:202) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1452) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.NativeSession.connect(NativeSession.java:165) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:849) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:830) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
docker_application | at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
应用程序。属性:
dictionary_app_prod_mysql:
container_name: dictionary_app_prod_mysql
image: mysql:5.7
volumes:
- "mysql-data:/var/lib/mysql"
- "mysql-log:/var/log/mysql"
- "mysql-conf:/etc/mysql/conf.d"
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: "root"
MYSQL_DATABASE: "general"
MYSQL_USER: "root"
MYSQL_PASSWORD: "root"
spring.datasource.url: jdbc:mysql://dictionary_app_prod_mysql:3306/general?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
用户“root”的访问被拒绝@'172.22.0.1'(使用密码:是)
非常清楚。如果此操作持续一段时间后突然停止并显示此消息,则您需要了解为什么您的db上的权限发生了更改,或者为什么您在应用程序上使用的凭据在您不知道的情况下发生了更改。@Zeitounator此操作正常工作数小时。数据库可用。但过了一段时间,我在应用程序日志和数据库日志中看到用户“root”的访问被拒绝(使用密码:YES)。没别的了。0其他消息。我如何验证它?还有什么在访问这个db实例?用户密码不会自行更改。请注意,您的端口映射到本地主机。因此,您主机上的任何mysql客户端应用程序都可以连接。