У меня есть небольшое Java-приложение. На данный момент я пытаюсь заставить его работать с mysql. У меня работает VMware Workstation и Ubuntu Server 10.10. Когда я пытаюсь подключиться к серверу (с моего ПК, на котором запущена VMware), чтобы запустить JDBC-соединение для драйвера mysql, это не работает. Я задавал аналогичный вопрос ранее в SO. Первый и единственный ответ (на данный момент) проблема в том, что брандмауэр или тип подключения могут быть проблемой, но я не знаю, как правильно его настроить.
Может кто поможет с этой частью?
Также я попытался создать *.jar
файл из моего приложения и в ссылке я разместил localhost, и на сервере он работает нормально, поэтому я думаю, это еще раз доказывает, что во время подключения есть некоторые ограничения.
Я предполагаю, что адрес привязки
Порт по умолчанию для mysql - 3306. Проверьте, прослушивает ли он все интерфейсы с netstat -tanlp | grep LISTEN | grep 3306
:
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN mysqld
Если это говорит 127.0.0.1:3306
тогда ваш mysql слушает только на локальном хосте. Если это так, измените свой mysql my.cnf
адрес привязки настройка:
bind-address = 10.0.0.1
или
bind-address = 0.0.0.0
слушать на всех интерфейсах.
Обновить: Хорошо, теперь вы можете подключиться к порту 3306. Сообщение об ошибке:
Host 'vm_ip' is not allowed to connect to this MySQL server
Значит, в пути нет firewall / iptables. Сообщение исходит от самого MySQL. Вам нужно будет сделать соответствующие «гранты», чтобы позволить вашему «пользователю» подключаться к базе данных с вашего «хоста». С точки зрения безопасности вам нужно быть очень осторожным при включении здесь. См. Следующий URL-адрес для получения справки:
http://dev.mysql.com/doc/refman/5.5/en/access-denied.html
Есть много сайтов, которые предоставляют всем всем ссылки типа на них. Будьте очень осторожны с тем, что вы используете из них. Если вашему пользователю нужен доступ только для чтения, вы можете начать с чего-то вроде:
GRANT select ON mydatabase.* to myusername@'192.168.1.1' IDENTIFIED BY 'mypasssword';
Будьте очень осторожны, просто выполняя команду типа «GRANT all».