Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException

前端 未结 3 2011
花落未央
花落未央 2021-02-08 21:56

when i run my code, i get this exception:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully         


        
3条回答
  •  谎友^
    谎友^ (楼主)
    2021-02-08 22:40

    There is CommunicationsException: Communications link failure.

    If you get a SQLException: Connection refused or Connection timed out or a MySQL specific

    CommunicationsException: Communications link failure
    

    then it means that the DB isn't reachable at all. This can have one or more of the following causes:

    • IP address or hostname in JDBC URL is wrong.
    • Hostname in JDBC URL is not recognized by local DNS server.
    • Port number is missing or wrong in JDBC URL.
    • DB server is down.
    • DB server doesn't accept TCP/IP connections.
    • DB server has run out of connections.
    • Something in between Java and DB is blocking connections, e.g. a firewall or proxy.

    To solve the one or the other, follow the following advices:

    • Verify and test them with ping.
    • Refresh DNS or use IP address in JDBC URL instead.
    • Verify it based on my.cnf of MySQL DB.
    • Start the DB.
    • Verify if mysqld is started without the --skip-networking option.
    • Restart the DB and fix your code accordingly that it closes connections in finally.
    • Disable firewall and/or configure firewall/proxy to allow/forward the port.

    Source: More Details

提交回复
热议问题