Попытка подключиться к базе данных mysql с помощью jdbc

У меня есть сервер Ubuntu, работающий на виртуальной машине локально, и мне нужно подключиться к базе данных mysql. База данных на месте и драйвер jdbc тоже. Единственная проблема заключается в том, что на данный момент единственным способом для моего подключения может быть что-то вроде http://local/phpmyadmin/index.php?db=sandbox, и его нельзя использовать в строке подключения jdbc.

Надеюсь, что кто-нибудь может посоветовать решение.


person Eugene    schedule 15.07.2011    source источник


Ответы (1)


String url = "jdbc:mysql://localhost:3306/mysql";
Connection con =  DriverManager.getConnection(url,"username", "pwd");

Замените localhost на IP-адрес вашей виртуальной машины. Вы должны использовать что-то другое, кроме NAT, для сети на вашей виртуальной машине (например, только для хоста, внутреннее или мостовое при условии VirtualBox).

Вероятно, вам придется настроить брандмауэр Ubuntu, чтобы разрешить соединение.

Кроме того, вы должны настроить mysql для приема соединений извне. В файле /etc/mysql/my.cnf отредактируйте bind-адрес на свой ip:

bind-address            = your-vms-ip
person Jacob    schedule 15.07.2011
comment
Я использую рабочую станцию ​​VMware и на данный момент заменил свой URL-адрес на String url = "jdbc:mysql://my_vm_ip:3306/database_name";, но получаю Details : com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.. Я предполагаю, что это может произойти именно из-за пожара, но я читал, что он отключен по умолчанию или, как вы упомянули, проблема может быть в конфигурации сети. - person Eugene; 16.07.2011
comment
Как подключена ваша рабочая станция? НАТ? Мост? Посмотрите на мой отредактированный ответ, может быть, это поможет. - person Jacob; 18.07.2011
comment
да. Это действительно помогло. Подобный вопрос я задавал в СФ, так как думал, что это будет более подходящее место. Теперь все работает. Вот еще один вопрос serverfault.com/questions/291378/ - person Eugene; 18.07.2011
comment
Мне просто интересно, потому что вы добавили награду к вопросу. - person Jacob; 18.07.2011