2015-05-05 4 views
2

Я устанавливаю MySQL в xubuntu 15.04, который установлен в VMware.
Это деталь MySQL:Не удается получить доступ к MySQL, установленному в виртуальной машине

mysql Ver 14.14 Distrib 5.6.24, for debian-linux-gnu (i686) using EditLine wrapper 
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its 
affiliates. Other names may be trademarks of their respective 
owners. 

Я поставил NetStat.

@ubuntu:~$ netstat -an|grep 3306 
tcp  0 0 127.0.0.1:3306  0.0.0.0:*    LISTEN 

Кроме того, я удалил bind_address & пропуском externak блокировки в /etc/mysql/mysql.conf.d/mysqld.cnf (я не могу найти эти два в /и т.д./mysql/my.cnf. Я нашел их только в mysqld.cnf.) и retart mysql.

Я также установить пользователь MySQL:

mysql> create user 'test'@'localhost' identified by 'MY_PASSWORD'; 
mysql> create user 'test'@'%' identified by 'MY_PASSWORD'; 
mysql> grant all on *.* to 'test'@'localhost'; 
mysql> grant all on *.* to 'test'@'%'; 

Как https://stackoverflow.com/a/21382716/1618596 говорит, я открываю порт MySQL:

sudo /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT 

Тогда я хочу, чтобы получить доступ к базе данных в моей локальной машине ,
Я использую Java с Hibernate. Это код hibernate.cfg.xml (192.168.96.130 является IP-адрес моего Xubuntu игровая)

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory name=""> 
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="hibernate.connection.url">jdbc:mysql://192.168.96.130/Test_DB</property> 
     <property name="hibernate.connection.username">test</property> 
     <property name="hibernate.connection.password">MY_PASSWORD</property> 
     <property name="show_sql">true</property> 
    </session-factory> 
</hibernate-configuration> 

Но это показывает ошибку:

WARN: HHH000277: Could not bind factory to JNDI 
org.hibernate.engine.jndi.JndiException: Error parsing JNDI name [] 
    at org.hibernate.engine.jndi.internal.JndiServiceImpl.parseName(JndiServiceImpl.java:141) 
    at org.hibernate.engine.jndi.internal.JndiServiceImpl.bind(JndiServiceImpl.java:157) 
    at org.hibernate.internal.SessionFactoryRegistry.addSessionFactory(SessionFactoryRegistry.java:103) 
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:497) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1930) 
    at M.main(M.java:14) 

Поэтому я хочу знать, как я могу получить доступ к база данных.

ответ

1

Вы должны удалить имя атрибут с вашего открытия сессии заводской теге в файле конфигурации спящего режима, чтобы ваш hibernate.xml выглядит следующим образом:

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="hibernate.connection.url">jdbc:mysql://192.168.96.130/Test_DB</property> 
     <property name="hibernate.connection.username">test</property> 
     <property name="hibernate.connection.password">MY_PASSWORD</property> 
     <property name="show_sql">true</property> 
    </session-factory> 
</hibernate-configuration> 
+1

Спасибо. Оно работает. Это настолько невероятно, что проблема настолько проста ... просто из-за атрибута. – Shiyou

0

Это происходит потому, что средства генерации зимуют являются а не с последними версиями спящего режима. На сегодняшний день вы получите эту ошибку с помощью Hibernate Core 4.3.10 Final и JBoss Tools 4.2.3. Окончательные версии (рассмотрены обе последние версии).

Смежные вопросы