Điểm:0

Không thể kết nối với cơ sở dữ liệu từ xa từ docker với ứng dụng java

lá cờ sa

Tại sao ứng dụng java của tôi không thể kết nối với máy chủ mysql của tôi?

docker-compose.yml

phiên bản: "3"

dịch vụ:
  chiesulu:
    #hình ảnh: 523840521829.dkr.ecr.us-east-1.amazonaws.com/djamadev/chiesulu:latest
    hình ảnh: djamadev/chiesulu: mới nhất
    cổng:
      - 9030:80
    env_file:
      - setenv.env
    triển khai:
      bản sao: 1
      cập nhật_config:
        song song: 1
      khởi động lại_chính sách:
        tình trạng: on-fail

khối lượng:
  dữ liệu db:

setenv.env

EBEAN_DATASOURCE=db
DATABASE_USERNAME=mysql-user
DATABASE_PASSWORD=mysql-user-password
DATABASE_URL=jdbc:mysql://mysql-server.com/mydb?serverTimezone=UTC
DATABASE_DRIVER=com.mysql.cj.jdbc.Driver

Lỗi

chiesulu_1 | io.ebean.datasource.DataSourceInitialiseException: Lỗi khi khởi tạo DataSource với người dùng: url gốc:jdbc:mysql://mysql-server.com/mydb?serverTimezone=UTC lỗi: Không thể tạo kết nối với máy chủ cơ sở dữ liệu. Đã thử kết nối lại 10 lần. Từ bỏ.
chiesulu_1 | tại io.ebean.datasource.pool.ConnectionPool.<init>(ConnectionPool.java:250)
chiesulu_1 | tại io.ebean.datasource.pool.ConnectionPoolFactory.createPool(ConnectionPoolFactory.java:14)
chiesulu_1 | tại io.ebean.datasource.DataSourceFactory.create(DataSourceFactory.java:26)
chiesulu_1 | tại io.ebeaninternal.server.core.InitDataSource.create(InitDataSource.java:121)
chiesulu_1 | tại io.ebeaninternal.server.core.InitDataSource.createFromConfig(InitDataSource.java:116)
chiesulu_1 | tại io.ebeaninternal.server.core.InitDataSource.initDataSource(InitDataSource.java:49)
chiesulu_1 | tại io.ebeaninternal.server.core.InitDataSource.initialise(InitDataSource.java:34)
chiesulu_1 | tại io.ebeaninternal.server.core.InitDataSource.init(InitDataSource.java:25)
chiesulu_1 | tại io.ebeaninternal.server.core.DefaultContainer.setDataSource(DefaultContainer.java:229)
chiesulu_1 | tại io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:90)
chiesulu_1 | tại io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:63)
chiesulu_1 | tại io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:35)
chiesulu_1 | tại io.ebean.DatabaseFactory.create(DatabaseFactory.java:63)
chiesulu_1 | tại io.ebean.DbContext.getWithCreate(DbContext.java:105)
chiesulu_1 | tại io.ebean.DbContext.<init>(DbContext.java:44)
chiesulu_1 | tại io.ebean.DbContext.<clinit>(DbContext.java:24)
chiesulu_1 | tại io.ebean.DB.<clinit>(DB.java:65)
chiesulu_1 | tại io.ebean.Finder.db(Finder.java:123)
chiesulu_1 | tại io.ebean.Finder.byId(Finder.java:154)
chiesulu_1 | tại com.djamadev.chiesulu.resources.OwnershipResource.getConnected(OwnershipResource.java:41)
chiesulu_1 | tại com.djamadev.chiesulu.resources.OwnershipResource.getBaseKey(OwnershipResource.java:112)
chiesulu_1 | tại com.djamadev.chiesulu.resources.BandResource.getBaseKey(BandResource.java:51)
chiesulu_1 | tại com.shinitech.djamadev.resources.BasicResource.buildKey(BasicResource.java:343)
chiesulu_1 | tại com.shinitech.djamadev.resources.AbstractEntityResource.getAll(AbstractEntityResource.java:55)
chiesulu_1 | tại sun.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
chiesulu_1 | tại sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
chiesulu_1 | tại sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
chiesulu_1 | tại java.lang.reflect.Method.invoke(Method.java:498)
chiesulu_1 | tại org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:76)
chiesulu_1 | tại org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:148)
chiesulu_1 | tại org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:191)
chiesulu_1 | tại org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:243)
chiesulu_1 | tại org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:103)
chiesulu_1 | tại org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:493)
chiesulu_1 | tại org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:415)
chiesulu_1 | tại org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:104)
chiesulu_1 | tại org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:277)
chiesulu_1 | tại org.glassfish.jersey.internal.Errors$1.call(Errors.java:272)
chiesulu_1 | tại org.glassfish.jersey.internal.Errors$1.call(Errors.java:268)
chiesulu_1 | tại org.glassfish.jersey.internal.Errors. process(Errors.java:316)
chiesulu_1 | tại org.glassfish.jersey.internal.Errors. process(Errors.java:298)
chiesulu_1 | tại org.glassfish.jersey.internal.Errors. process(Errors.java:268)
chiesulu_1 | tại org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:289)
chiesulu_1 | tại org.glassfish.jersey.server.ServerRuntime. process(ServerRuntime.java:256)
chiesulu_1 | tại org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703)
chiesulu_1 | tại org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:416)
chiesulu_1 | tại org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370)
chiesulu_1 | tại org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389)
chiesulu_1 | tại org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342)
chiesulu_1 | tại org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229)
chiesulu_1 | tại org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
chiesulu_1 | tại org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
chiesulu_1 | tại org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
chiesulu_1 | tại org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
chiesulu_1 | tại org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
chiesulu_1 | tại org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
chiesulu_1 | tại org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
chiesulu_1 | tại org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
chiesulu_1 | tại org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
chiesulu_1 | tại org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
chiesulu_1 | tại org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
chiesulu_1 | tại org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
chiesulu_1 | tại org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
chiesulu_1 | tại org.apache.coyote.AbstractProcessorLight. process(AbstractProcessorLight.java:65)
chiesulu_1 | tại org.apache.coyote.AbstractProtocol$ConnectionHandler. process(AbstractProtocol.java:868)
chiesulu_1 | tại org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
chiesulu_1 | tại org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
chiesulu_1 | tại java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
chiesulu_1 | tại java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
chiesulu_1 | tại org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
chiesulu_1 | tại java.lang.Thread.run(Thread.java:748)
chiesulu_1 | Nguyên nhân: java.sql.SQLNonTransientConnectionException: Không thể tạo kết nối tới máy chủ cơ sở dữ liệu. Đã thử kết nối lại 10 lần. Từ bỏ.
chiesulu_1 | tại com.mysql.cj.jdbc.Exceptions.SQLError.createSQLException(SQLError.java:110)
chiesulu_1 | tại com.mysql.cj.jdbc.Exceptions.SQLError.createSQLException(SQLError.java:97)
chiesulu_1 | tại com.mysql.cj.jdbc.Exceptions.SQLError.createSQLException(SQLError.java:89)
chiesulu_1 | tại com.mysql.cj.jdbc.Exceptions.SQLError.createSQLException(SQLError.java:63)
chiesulu_1 | tại com.mysql.cj.jdbc.Exceptions.SQLError.createSQLException(SQLError.java:73)
chiesulu_1 | tại com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:897)
chiesulu_1 | tại com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:822)
chiesulu_1 | tại com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
chiesulu_1 | tại com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
chiesulu_1 | tại com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
chiesulu_1 | tại java.sql.DriverManager.getConnection(DriverManager.java:664)
chiesulu_1 | tại java.sql.DriverManager.getConnection(DriverManager.java:208)
chiesulu_1 | tại io.ebean.datasource.pool.ConnectionPool.createUnpooledConnection(ConnectionPool.java:543)
chiesulu_1 | tại io.ebean.datasource.pool.ConnectionPool.createUnpooledConnection(ConnectionPool.java:538)
chiesulu_1 | tại io.ebean.datasource.pool.ConnectionPool.createConnectionForQueue(ConnectionPool.java:757)
chiesulu_1 | tại io.ebean.datasource.pool.PooledConnectionQueue.ensureMinimumConnections(PooledConnectionQueue.java:176)
chiesulu_1 | tại io.ebean.datasource.pool.ConnectionPool.initialise(ConnectionPool.java:298)
chiesulu_1 | tại io.ebean.datasource.pool.ConnectionPool.<init>(ConnectionPool.java:247)
chiesulu_1 | ... 70 khung hình phổ biến bị lược bỏ
chiesulu_1 | Gây ra bởi: com.mysql.cj.exceptions.CJCommunicationsException: Lỗi liên kết giao tiếp
chiesulu_1 | 
chiesulu_1 | Gói cuối cùng được gửi thành công đến máy chủ là 0 mili giây trước. Trình điều khiển chưa nhận được bất kỳ gói tin nào từ máy chủ.
chiesulu_1 | tại sun.reflect.NativeConstructorAccessorImpl.newInstance0(Phương thức gốc)
chiesulu_1 | tại sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
chiesulu_1 | tại sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
chiesulu_1 | tại java.lang.reflect.Constructor.newInstance(Constructor.java:423)
chiesulu_1 | tại com.mysql.cj.Exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
chiesulu_1 | tại com.mysql.cj.Exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
chiesulu_1 | tại com.mysql.cj.Exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
chiesulu_1 | tại com.mysql.cj.Exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)
chiesulu_1 | tại com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java:340)
chiesulu_1 | tại com.mysql.cj.protocol.a.NativeAuthenticationProvider.negotiateSSLConnection(NativeAuthenticationProvider.java:777)
chiesulu_1 | tại com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:486)
chiesulu_1 | tại com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:202)
chiesulu_1 | tại com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1348)
chiesulu_1 | tại com.mysql.cj.NativeSession.connect(NativeSession.java:163)
chiesulu_1 | tại com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:841)
chiesulu_1 | ... 82 khung phổ biến bị lược bỏ
chiesulu_1 | Gây ra bởi: javax.net.ssl.SSLHandshakeException: Không có giao thức thích hợp (giao thức bị vô hiệu hóa hoặc bộ mật mã không phù hợp)
chiesulu_1 | tại sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:171)
chiesulu_1 | tại sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:103)
chiesulu_1 | tại sun.security.ssl.TransportContext.kickstart(TransportContext.java:220)
chiesulu_1 | tại sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:428)
chiesulu_1 | tại com.mysql.cj.protocol.ExportControlled.performTlsHandshake(ExportControlled.java:316)
chiesulu_1 | tại com.mysql.cj.protocol.StandardSocketFactory.performTlsHandshake(StandardSocketFactory.java:188)
chiesulu_1 | tại com.mysql.cj.protocol.a.NativeSocketConnection.performTlsHandshake(NativeSocketConnection.java:99)
chiesulu_1 | tại com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java:331)
chiesulu_1 | ... 88 khung phổ biến bị lược bỏ
chiesulu_1 | Ngày 25 tháng 10 năm 2021 12:23:07 chiều org.apache.catalina.core.StandardWrapperValve gọi
chiesulu_1 | NGHIÊM TRỌNG: Servlet.service() cho servlet [ChiesuluApplication] trong ngữ cảnh có đường dẫn [] ném ngoại lệ [org.glassfish.jersey.server.ContainerException: java.lang.ExceptionInInitializerError] với nguyên nhân gốc rễ

lá cờ cn
Câu hỏi ở đây là gì? Nếu bạn đang hỏi và trả lời câu hỏi của riêng mình (điều này hoàn toàn được phép) thì giải pháp sẽ được đăng dưới dạng câu trả lời, không được đưa vào câu hỏi.
lá cờ cn
Bạn vẫn cần mô tả vấn đề trong câu hỏi một cách đầy đủ để người khác nhận ra vấn đề đó phù hợp với vấn đề của họ (ví dụ: bao gồm các thông báo lỗi và cách bạn định cấu hình ứng dụng khách), vì ở đây không có đủ thông tin để trợ giúp bất kỳ ai khác.
digijay avatar
lá cờ mx
Các câu hỏi tìm kiếm trợ giúp về cài đặt, cấu hình hoặc chẩn đoán phải bao gồm trạng thái kết thúc mong muốn, sự cố hoặc lỗi cụ thể, thông tin đầy đủ về cấu hình và môi trường để tái tạo nó cũng như các giải pháp đã thử.
Cheick Mahady Sissoko avatar
lá cờ sa
Cảm ơn bạn đã bình luận của bạn, Như bạn thấy tôi là người mới.
digijay avatar
lá cờ mx
Như thế này, câu hỏi của bạn có vẻ tốt hơn nhiều. Và chào mừng bạn đến với serverfault.com!
Điểm:2
lá cờ sa

Tôi đã giải quyết vấn đề bằng cách thêm tham số truy vấn enableTLSProtocols vào liên kết của máy chủ mysql.

Như : DATABASE_URL=jdbc:mysql://mysql-server.com/mydatabase?serverTimezone=UTC&enabledTLSProtocols=TLSv1.2

Lỗi do Ngoại lệ gây ra: javax.net.ssl.SSLHandshakeException: Không có giao thức thích hợp (giao thức bị vô hiệu hóa hoặc bộ mật mã không phù hợp)

Bài viết này giúp tôi: https://stackoverflow.com/questions/67332909/why-can-java-not-connect-to-mysql-5-7-after-the-latest-jdk-update-and-how-nên

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.