Ayuda para conectar base de datos en red con hibernate!
Publicado por Leonardo (16 intervenciones) el 29/11/2017 19:17:29
Hola que tal!!
Hice un programa en java, usando hibernate, y tengo instalado el xampp v3.2.2, Con el apache y mysql que vienen dentro de el.
Usando una sola maquina, con la conexión con localhost o 127.0.0.1 funciona perfecto (a continuacion muestro el archivo hibernate.cfg), pero tengo 2 maquinas que funcionan en red, y quiero poner el programa en la otra maquina pero que lea la base de datos que esta alojada en la primera.
ya cree supuestamente los permisos para acceso al mysql remotamente, en la maquina que no esta la base puedo entrar al phpadmin de la otra poniendo : 192.168.0.10/phpmyadmin entra sin problemas.
Lo que no se como configurar el archivo de hibernate o hay que modificar algo del xampp o mysql. Para que me lea la base de datos el programa que esta en la otra maquina.
EL archivo de hibernate es:
Eh probado cambiar jdbc:mysql://127.0.0.1:3306/olmedos --> jdbc:mysql://192.168.0.10:3306/olmedos
pero me tira estos errores:
Exception in thread "main" java.lang.ExceptionInInitializerError
at ar.com.olmedos.util.HibernateUtil.<clinit>(HibernateUtil.java:25)
at ar.com.olmedos.dao.AbstractDao.getByFieldAndLe(AbstractDao.java:389)
at ar.com.olmedos.controlador.ChequeControlador.actualizarEstadoCheque(ChequeControlador.java:109)
at ar.com.olmedos.controlador.VPrincipalControlador.iniciarPrincipal(VPrincipalControlador.java:33)
at ar.com.olmedos.vista.Principal.<init>(Principal.java:66)
at ar.com.olmedos.main.Run.main(Run.java:16)
Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:122)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:140)
at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:58)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:75)
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:106)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:260)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:94)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)
at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843)
at ar.com.olmedos.util.HibernateUtil.<clinit>(HibernateUtil.java:21)
... 5 more
Caused by: java.sql.SQLException: null, message from server: "Host '192.168.0.105' is not allowed to connect to this MariaDB server"
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1110)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2465)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2498)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:822)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:55)
... 18 more
Por favor alguien me podría ayudar!!
Abrazo grande!
Hice un programa en java, usando hibernate, y tengo instalado el xampp v3.2.2, Con el apache y mysql que vienen dentro de el.
Usando una sola maquina, con la conexión con localhost o 127.0.0.1 funciona perfecto (a continuacion muestro el archivo hibernate.cfg), pero tengo 2 maquinas que funcionan en red, y quiero poner el programa en la otra maquina pero que lea la base de datos que esta alojada en la primera.
ya cree supuestamente los permisos para acceso al mysql remotamente, en la maquina que no esta la base puedo entrar al phpadmin de la otra poniendo : 192.168.0.10/phpmyadmin entra sin problemas.
Lo que no se como configurar el archivo de hibernate o hay que modificar algo del xampp o mysql. Para que me lea la base de datos el programa que esta en la otra maquina.
EL archivo de hibernate es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">
org.gjt.mm.mysql.Driver
</property>
<property name="hibernate.connection.url">
jdbc:mysql://127.0.0.1:3306/olmedos</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"></property>
<property name="connection.pool_size">5</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!--
Aca vienen los mapping pero los saque para que no molesten
-->
</session-factory>
</hibernate-configuration>
Eh probado cambiar jdbc:mysql://127.0.0.1:3306/olmedos --> jdbc:mysql://192.168.0.10:3306/olmedos
pero me tira estos errores:
Exception in thread "main" java.lang.ExceptionInInitializerError
at ar.com.olmedos.util.HibernateUtil.<clinit>(HibernateUtil.java:25)
at ar.com.olmedos.dao.AbstractDao.getByFieldAndLe(AbstractDao.java:389)
at ar.com.olmedos.controlador.ChequeControlador.actualizarEstadoCheque(ChequeControlador.java:109)
at ar.com.olmedos.controlador.VPrincipalControlador.iniciarPrincipal(VPrincipalControlador.java:33)
at ar.com.olmedos.vista.Principal.<init>(Principal.java:66)
at ar.com.olmedos.main.Run.main(Run.java:16)
Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:122)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:140)
at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:58)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:75)
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:106)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:260)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:94)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)
at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843)
at ar.com.olmedos.util.HibernateUtil.<clinit>(HibernateUtil.java:21)
... 5 more
Caused by: java.sql.SQLException: null, message from server: "Host '192.168.0.105' is not allowed to connect to this MariaDB server"
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1110)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2465)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2498)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:822)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:55)
... 18 more
Por favor alguien me podría ayudar!!
Abrazo grande!
Valora esta pregunta


0