Vojtěch
Vojtěch

Reputation: 12436

Hibernate unable to connect to pure MySQL installation on debian

I've just created a new Virtual Machine, which was initially completely clean -

I've installed MySQL, set up the passwords and now I can access it via PHPMyAdmin.

I copied my java application with the same configuration that is running on my other server. But it seems to have difficulties connecting to the MySQL server.

You can see the MySQL is listening:

# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 localhost:mysql         *:*                     LISTEN      5307/mysqld   

In TOP, I can see these two processes:

5196 root      20   0  3956  632  508 S    0  0.0   0:00.00 mysqld_safe                                                                                                                                           
5307 mysql     20   0  167m  33m 6780 S    0  0.8   0:00.47 mysqld      

But once I try to run the application I end up when Hibernate tries to connect:

23:46:10,192  INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl:127 - HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost/goout2?autoReconnect=true]
23:46:10,192  INFO org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl:132 - HHH000046: Connection properties: {user=goout2, writedelay=0, password=****, autocommit=true, shutdown=true, characterEncoding=UTF-8, charSet=UTF-8, release_mode=auto}
23:46:14,331  WARN org.hibernate.engine.jdbc.internal.JdbcServicesImpl:169 - HHH000342: Could not obtain connection to query metadata : Could not create connection to database server. Attempted reconnect 3 times. Giving up.
23:46:14,340  INFO org.hibernate.dialect.Dialect:122 - HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect
23:46:14,350  INFO org.hibernate.engine.jdbc.internal.LobCreatorBuilder:85 - HHH000422: Disabling contextual LOB creation as connection was null
23:46:14,362  INFO org.hibernate.engine.transaction.internal.TransactionFactoryInitiator:73 - HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory
23:46:14,367  INFO org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory:48 - HHH000397: Using ASTQueryTranslatorFactory
23:46:14,944  INFO org.hibernate.tool.hbm2ddl.SchemaUpdate:182 - HHH000228: Running hbm2ddl schema update
23:46:14,944  INFO org.hibernate.tool.hbm2ddl.SchemaUpdate:193 - HHH000102: Fetching database metadata
23:46:18,949 ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate:201 - HHH000319: Could not get database metadata
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.

With C3P0 it dies like this:

23:58:08,696  INFO com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource:462 - Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@2e902532 [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@43a8e988 [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, debugUnreturnedConnectionStackTraces -> false, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> ahkzhz8n1trd1gkc8ious|37e8cf51, idleConnectionTestPeriod -> 600, initialPoolSize -> 3, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 300, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 20, maxStatements -> 50, maxStatementsPerConnection -> 0, minPoolSize -> 5, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@78875ab8 [ description -> null, driverClass -> null, factoryClassLocation -> null, identityToken -> ahkzhz8n1trd1gkc8ious|20053644, jdbcUrl -> jdbc:mysql://localhost:5307/goout2?autoReconnect=true, properties -> {user=******, writedelay=0, password=******, autocommit=true, shutdown=true, characterEncoding=UTF-8, charSet=UTF-8, release_mode=auto} ], preferredTestQuery -> null, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false; userOverrides: {} ], dataSourceName -> null, factoryClassLocation -> null, identityToken -> ahkzhz8n1trd1gkc8ious|347c8e1c, numHelperThreads -> 3 ]
23:58:28,694  WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector:608 - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@457e133d -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
23:58:28,697  WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector:624 - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@457e133d -- APPARENT DEADLOCK!!! Complete Status: 

Obviously the MySQL does not want to accept conenction from my Java application and MySQL logs do not show anything. I suppose, there is some configuration option I am not aware of.

Thanks.

Upvotes: 1

Views: 4711

Answers (1)

Udo Held
Udo Held

Reputation: 12548

jdbc:mysql://localhost:5307/goout2?autoReconnect=true

5307 is not the standard mysql port. Have you tried connecting to port 3306? 5307 seems to be the PID (process id) and not the port.

You could also try to connect via 127.0.0.1 and/or your current ip. The screen looks like you have enabled mysql to listen to that ports, however make sure that its actively listening on that port. telnet localhost 5307 the mysqlserver has an option to listen on local sockets only, make sure its actually opening up a port.

Upvotes: 2

Related Questions