Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

टॉमकैट कंटेनर पर एक वेब-ऐप को हाइबरनेट के माध्यम से mysql कंटेनर से कनेक्ट करें

मुझे लगता है कि मुझे एक विचार है कि आपको यह अपवाद क्यों मिल रहा है। आप 2 कंटेनर चला रहे हैं,

  1. डेटा बेस के लिए mysql कंटेनर
  2. टॉमकैट कंटेनर

निश्चित रूप से, आपका अपवाद स्थिर चर आरंभीकरण अपवाद के कारण है,

public static final SessionFactory sessionFactory = buildSessionFactory();

साथ ही, आपकी प्रॉपर्टी फ़ाइल में कुछ समस्याएं हैं,

  1. connection.url hibernate.connection.url
  2. आपने अपने mysql होस्टनाम का उल्लेख लोकलहोस्ट के रूप में किया है लेकिन यह किसी अन्य कंटेनर में चल रहा है। यदि आपने अपने mysql कंटेनर का नाम "mysql" रखा है, तो आपको इसे "mysql" में बदलना चाहिए
java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:214)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:298)

स्पष्ट रूप से दर्शाता है कि आपका या तो

  1. मैसकल नहीं चल रहा है। sql क्लाइंट जैसे गिलहरी से कनेक्शन बनाकर चेक करें।
  2. टॉमकैट कंटेनर MySQL कंटेनर से कनेक्ट नहीं हो सकता है। ऐसा करके एक त्वरित पिंग की जाँच करें

    docker exec tomcat ping mysql  
    

मुझे इस एप्लिकेशन को तैनात करने में कुछ समय लगा। मैंने इस प्रश्न में आपके द्वारा पूछी गई समस्या का समाधान कर दिया है। प्राथमिक समस्या यह थी कि MySQL टॉमकैट कंटेनर से उपलब्ध नहीं था। साथ ही, निर्दिष्ट पोर्ट भी सही नहीं था। निम्नलिखित है hibernate.cfg.xml,

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>

<!-- queste configurazioni sono per il testing in locale  -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://mysql:3306/AT_DB</property>

<property name="hibernate.connection.username">root</property>
<property name="connection.password">lxit</property>

 ....rest of configuration....      

    </session-factory>
</hibernate-configuration>

निम्नलिखित जैसी कुछ समस्याएं हैं,

17-Feb-2017 16:07:53.156 INFO [http-nio-8080-exec-1] org.hibernate.dialect.Dialect.<init> HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
17-Feb-2017 16:07:53.776 INFO [http-nio-8080-exec-1] org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.processGetTableResults HHH000262: Table not found: ClientUser
17-Feb-2017 16:07:53.777 INFO [http-nio-8080-exec-1] org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.processGetTableResults HHH000262: Table not found: ClientUser
17-Feb-2017 16:07:53.818 INFO [http-nio-8080-exec-1] org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.processGetTableResults HHH000262: Table not found: Post
17-Feb-2017 16:07:53.819 INFO [http-nio-8080-exec-1] org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.processGetTableResults HHH000262: Table not found: Post
17-Feb-2017 16:07:53.828 INFO [http-nio-8080-exec-1] org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.processGetTableResults HHH000262: Table not found: SessionToken
17-Feb-2017 16:07:53.828 INFO [http-nio-8080-exec-1] org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.processGetTableResults HHH000262: Table not found: SessionToken
17-Feb-2017 16:07:53.830 WARN [http-nio-8080-exec-1] org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl.handleException GenerationTarget encountered exception accepting command : Unable to execut

लेकिन ये यूनिक्स की केस सेंसिटिविटी के कारण हैं जो शायद विंडोज के मामले में नहीं था। बाकी अपवाद हल करने के लिए तुच्छ हैं। मैं डॉकर आदेशों का पालन कर भागा,

 sudo docker run -ti --rm -p 8888:8080 -p 8009:8009 -v $(pwd):/usr/local/tomcat/webapps/ --name tomcat tomcat:9-jre8 bash

 sudo docker run -d --name mysql -p 49162:3306 -p 49161:80 -p 49160:22 lxitgto/mysql-phpmyadmin:v1

और बाकी नेटवर्क कमांड।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL इनर जॉइन क्वेरी मल्टीपल टेबल्स

  2. MySQL में कॉलम के डेटा प्रकार की जांच करने के 4 तरीके

  3. मैक पर डॉकर मशीन:डोकर होस्ट/डॉकर-मशीन पर माउंटेड वॉल्यूम नहीं देख सकता है? वॉल्यूम भौतिक रूप से कहाँ संग्रहीत किए जाते हैं?

  4. PHP तालिका (दिनांक) वैधता के आधार पर गतिशील रंग परिवर्तन

  5. ECONNREFUSED कनेक्ट करें - नोड जेएस, एसक्यूएल