Score:0

ไม่สามารถเชื่อมต่อกับฐานข้อมูลระยะไกลจากนักเทียบท่าด้วยแอปพลิเคชันจาวา

ธง sa

เหตุใดแอปพลิเคชัน Java ของฉันไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ mysql ได้

นักเทียบท่า-compose.yml

รุ่น: "3"

บริการ:
  ชีซูลู:
    #ภาพ: 523840521829.dkr.ecr.us-east-1.amazonaws.com/djamadev/chiesulu:latest
    ภาพ: djamadev/chiesulu:ล่าสุด
    พอร์ต:
      - 9030:80
    env_file:
      - setenv.env
    ปรับใช้:
      แบบจำลอง: 1
      update_config:
        ความเท่าเทียม: 1
      รีสตาร์ท_นโยบาย:
        เงื่อนไข: เมื่อล้มเหลว

ปริมาณ:
  ข้อมูลฐานข้อมูล:

setenv.env

EBEAN_DATASOURCE=ฐานข้อมูล
DATABASE_USERNAME=ผู้ใช้ mysql
DATABASE_PASSWORD=mysql-ผู้ใช้-รหัสผ่าน
DATABASE_URL=jdbc:mysql://mysql-server.com/mydb?serverTimezone=UTC
DATABASE_DRIVER=com.mysql.cj.jdbc.Driver

ข้อผิดพลาด

chiesulu_1 | io.ebean.datasource.DataSourceInitialiseException: เกิดข้อผิดพลาดในการเริ่มต้นแหล่งข้อมูลด้วยผู้ใช้: root url:jdbc:mysql://mysql-server.com/mydb?serverTimezone=UTC ข้อผิดพลาด:ไม่สามารถสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูล พยายามเชื่อมต่อใหม่ 10 ครั้ง ยอมแพ้.
chiesulu_1 | ที่ io.ebean.datasource.pool.ConnectionPool.<init>(ConnectionPool.java:250)
chiesulu_1 | ที่ io.ebean.datasource.pool.ConnectionPoolFactory.createPool(ConnectionPoolFactory.java:14)
chiesulu_1 | ที่ io.ebean.datasource.DataSourceFactory.create (DataSourceFactory.java:26)
chiesulu_1 | ที่ io.ebeaninternal.server.core.InitDataSource.create(InitDataSource.java:121)
chiesulu_1 | ที่ io.ebeaninternal.server.core.InitDataSource.createFromConfig(InitDataSource.java:116)
chiesulu_1 | ที่ io.ebeaninternal.server.core.InitDataSource.initDataSource(InitDataSource.java:49)
chiesulu_1 | ที่ io.ebeaninternal.server.core.InitDataSource.initialise(InitDataSource.java:34)
chiesulu_1 | ที่ io.ebeaninternal.server.core.InitDataSource.init(InitDataSource.java:25)
chiesulu_1 | ที่ io.ebeaninternal.server.core.DefaultContainer.setDataSource (DefaultContainer.java:229)
chiesulu_1 | ที่ io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:90)
chiesulu_1 | ที่ io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:63)
chiesulu_1 | ที่ io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:35)
chiesulu_1 | ที่ io.ebean.DatabaseFactory.create (DatabaseFactory.java:63)
chiesulu_1 | ที่ io.ebean.DbContext.getWithCreate(DbContext.java:105)
chiesulu_1 | ที่ io.ebean.DbContext.<init>(DbContext.java:44)
chiesulu_1 | ที่ io.ebean.DbContext.<clinit>(DbContext.java:24)
chiesulu_1 | ที่ io.ebean.DB.<clinit>(DB.java:65)
chiesulu_1 | ที่ io.ebean.Finder.db(Finder.java:123)
chiesulu_1 | ที่ io.ebean.Finder.byId(Finder.java:154)
chiesulu_1 | ที่ com.djamadev.chiesulu.resources.OwnershipResource.getConnected(OwnershipResource.java:41)
chiesulu_1 | ที่ com.djamadev.chiesulu.resources.OwnershipResource.getBaseKey(OwnershipResource.java:112)
chiesulu_1 | ที่ com.djamadev.chiesulu.resources.BandResource.getBaseKey(BandResource.java:51)
chiesulu_1 | ที่ com.shinitech.djamadev.resources.BasicResource.buildKey(BasicResource.java:343)
chiesulu_1 | ที่ com.shinitech.djamadev.resources.AbstractEntityResource.getAll(AbstractEntityResource.java:55)
chiesulu_1 | ที่ sun.reflect.NativeMethodAccessorImpl.invoke0 (เมธอดเนทีฟ)
chiesulu_1 | ที่ sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
chiesulu_1 | ที่ sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
chiesulu_1 | ที่ java.lang.reflect.Method.invoke (Method.java:498)
chiesulu_1 | ที่ org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:76)
chiesulu_1 | ที่ org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:148)
chiesulu_1 | ที่ org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke (AbstractJavaResourceMethodDispatcher.java:191)
chiesulu_1 | ที่ org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:243)
chiesulu_1 | ที่ org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch (AbstractJavaResourceMethodDispatcher.java:103)
chiesulu_1 | ที่ org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke (ResourceMethodInvoker.java:493)
chiesulu_1 | ที่ org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:415)
chiesulu_1 | ที่ org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:104)
chiesulu_1 | ที่ org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:277)
chiesulu_1 | ที่ org.glassfish.jersey.internal.Errors$1.call(Errors.java:272)
chiesulu_1 | ที่ org.glassfish.jersey.internal.Errors$1.call(Errors.java:268)
chiesulu_1 | ที่ org.glassfish.jersey.internal.Errors.process(Errors.java:316)
chiesulu_1 | ที่ org.glassfish.jersey.internal.Errors.process(Errors.java:298)
chiesulu_1 | ที่ org.glassfish.jersey.internal.Errors.process(Errors.java:268)
chiesulu_1 | ที่ org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:289)
chiesulu_1 | ที่ org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:256)
chiesulu_1 | ที่ org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703)
chiesulu_1 | ที่ org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:416)
chiesulu_1 | ที่ org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370)
chiesulu_1 | ที่ org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389)
chiesulu_1 | ที่ org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342)
chiesulu_1 | ที่ org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229)
chiesulu_1 | ที่ org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
chiesulu_1 | ที่ org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
chiesulu_1 | ที่ org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
chiesulu_1 | ที่ org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
chiesulu_1 | ที่ org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
chiesulu_1 | ที่ org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:202)
chiesulu_1 | ที่ org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
chiesulu_1 | ที่ org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
chiesulu_1 | ที่ org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:139)
chiesulu_1 | ที่ org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:92)
chiesulu_1 | ที่ org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
chiesulu_1 | ที่ org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
chiesulu_1 | ที่ org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
chiesulu_1 | ที่ org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
chiesulu_1 | ที่ org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
chiesulu_1 | ที่ org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
chiesulu_1 | ที่ org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
chiesulu_1 | ที่ java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)
chiesulu_1 | ที่ java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
chiesulu_1 | ที่ org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
chiesulu_1 | ที่ java.lang.Thread.run(Thread.java:748)
chiesulu_1 | เกิดจาก: java.sql.SQLNonTransientConnectionException: ไม่สามารถสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูล พยายามเชื่อมต่อใหม่ 10 ครั้ง ยอมแพ้.
chiesulu_1 | ที่ com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
chiesulu_1 | ที่ com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
chiesulu_1 | ที่ com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
chiesulu_1 | ที่ com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
chiesulu_1 | ที่ com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
chiesulu_1 | ที่ com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:897)
chiesulu_1 | ที่ com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:822)
chiesulu_1 | ที่ com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:447)
chiesulu_1 | ที่ com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
chiesulu_1 | ที่ com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
chiesulu_1 | ที่ java.sql.DriverManager.getConnection(DriverManager.java:664)
chiesulu_1 | ที่ java.sql.DriverManager.getConnection(DriverManager.java:208)
chiesulu_1 | ที่ io.ebean.datasource.pool.ConnectionPool.createUnpooledConnection(ConnectionPool.java:543)
chiesulu_1 | ที่ io.ebean.datasource.pool.ConnectionPool.createUnpooledConnection(ConnectionPool.java:538)
chiesulu_1 | ที่ io.ebean.datasource.pool.ConnectionPool.createConnectionForQueue (ConnectionPool.java:757)
chiesulu_1 | ที่ io.ebean.datasource.pool.PooledConnectionQueue.ensureMinimumConnections(PooledConnectionQueue.java:176)
chiesulu_1 | ที่ io.ebean.datasource.pool.ConnectionPool.initialise (ConnectionPool.java:298)
chiesulu_1 | ที่ io.ebean.datasource.pool.ConnectionPool.<init>(ConnectionPool.java:247)
chiesulu_1 | ... ละเว้น 70 เฟรมทั่วไป
chiesulu_1 | เกิดจาก: com.mysql.cj.exceptions.CJCommunicationsException: ลิงก์การสื่อสารล้มเหลว
chiesulu_1 | 
chiesulu_1 | แพ็กเก็ตล่าสุดที่ส่งไปยังเซิร์ฟเวอร์สำเร็จคือ 0 มิลลิวินาทีที่แล้ว ไดรเวอร์ไม่ได้รับแพ็คเก็ตใด ๆ จากเซิร์ฟเวอร์
chiesulu_1 | ที่ sun.reflect.NativeConstructorAccessorImpl.newInstance0 (เมธอดเนทีฟ)
chiesulu_1 | ที่ sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
chiesulu_1 | ที่ sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
chiesulu_1 | ที่ java.lang.reflect.Constructor.newInstance(Constructor.java:423)
chiesulu_1 | ที่ com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
chiesulu_1 | ที่ com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
chiesulu_1 | ที่ com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
chiesulu_1 | ที่ com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)
chiesulu_1 | ที่ com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java:340)
chiesulu_1 | ที่ com.mysql.cj.protocol.a.NativeAuthenticationProvider.negotiateSSLConnection(NativeAuthenticationProvider.java:777)
chiesulu_1 | ที่ com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:486)
chiesulu_1 | ที่ com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect (NativeAuthenticationProvider.java:202)
chiesulu_1 | ที่ com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1348)
chiesulu_1 | ที่ com.mysql.cj.NativeSession.connect(NativeSession.java:163)
chiesulu_1 | ที่ com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:841)
chiesulu_1 | ... 82 เฟรมทั่วไปละเว้น
chiesulu_1 | เกิดจาก: javax.net.ssl.SSLHandshakeException: ไม่มีโปรโตคอลที่เหมาะสม (โปรโตคอลถูกปิดใช้งานหรือชุดการเข้ารหัสไม่เหมาะสม)
chiesulu_1 | ที่ sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:171)
chiesulu_1 | ที่ sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:103)
chiesulu_1 | ที่ sun.security.ssl.TransportContext.kickstart(TransportContext.java:220)
chiesulu_1 | ที่ sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:428)
chiesulu_1 | ที่ com.mysql.cj.protocol.ExportControlled.performTlsHandshake(ExportControlled.java:316)
chiesulu_1 | ที่ com.mysql.cj.protocol.StandardSocketFactory.performTlsHandshake(StandardSocketFactory.java:188)
chiesulu_1 | ที่ com.mysql.cj.protocol.a.NativeSocketConnection.performTlsHandshake(NativeSocketConnection.java:99)
chiesulu_1 | ที่ com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java:331)
chiesulu_1 | ... 88 เฟรมทั่วไปถูกละไว้
chiesulu_1 | 25 ต.ค. 2564 12:23:07 น. org.apache.catalina.core.StandardWrapperValve เรียกใช้
chiesulu_1 | รุนแรง: Servlet.service() สำหรับ servlet [ChiesuluApplication] ในบริบทที่มีพาธ [] ส่งข้อยกเว้น [org.glassfish.jersey.server.ContainerException: java.lang.ExceptionInInitializerError] พร้อมสาเหตุหลัก

cn flag
คำถามที่นี่คืออะไร? หากคุณกำลังถามและตอบคำถามของคุณเอง (ซึ่งเป็นสิ่งที่อนุญาตอย่างสมบูรณ์) คุณควรโพสต์วิธีแก้ปัญหาเป็นคำตอบ ไม่ใช่รวมไว้ในคำถาม
cn flag
คุณยังคงต้องอธิบายปัญหาในคำถามให้เพียงพอ ซึ่งคนอื่นจะรับรู้ได้ว่าปัญหานั้นตรงกับของพวกเขา (เช่น รวมข้อความแสดงข้อผิดพลาดและวิธีที่คุณกำหนดค่าไคลเอ็นต์) เนื่องจากที่นี่ไม่เพียงพอที่จะช่วยเหลือใครได้อีก
digijay avatar
mx flag
คำถามที่ต้องการความช่วยเหลือในการติดตั้ง การกำหนดค่า หรือการวินิจฉัยต้องรวมถึงสถานะสิ้นสุดที่ต้องการ ปัญหาหรือข้อผิดพลาดเฉพาะ ข้อมูลที่เพียงพอเกี่ยวกับการกำหนดค่าและสภาพแวดล้อมเพื่อทำซ้ำ และพยายามแก้ไข
Cheick Mahady Sissoko avatar
sa flag
ขอบคุณสำหรับความคิดเห็นของคุณ อย่างที่คุณเห็นฉันเป็นคนใหม่
digijay avatar
mx flag
แบบนี้ คำถามของคุณจะดูดีขึ้นมาก และยินดีต้อนรับสู่ serverfault.com!
Score:2
ธง sa

ฉันแก้ไขปัญหาโดยเพิ่มพารามิเตอร์การสืบค้น enableTLSProtocols ลงในลิงก์ของเซิร์ฟเวอร์ mysql

เนื่องจาก : DATABASE_URL=jdbc:mysql://mysql-server.com/mydatabase?serverTimezone=UTC&enabledTLSProtocols=TLSv1.2

ข้อผิดพลาดเกิดจากข้อยกเว้น: javax.net.ssl.SSLHandshakeException: ไม่มีโปรโตคอลที่เหมาะสม (โปรโตคอลถูกปิดใช้งานหรือชุดรหัสไม่เหมาะสม)

โพสต์นี้ช่วยฉัน: https://stackoverflow.com/questions/67332909/why-can-java-not-connect-to-mysql-5-7-after-the-latest-jdk-update-and-how-should

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา