2012-01-30 2 views
1

Я уже разработал приложение JAVA SWING. Я хочу установить это приложение в несколько компьютеров, которые все имеют доступ к интернету. Итак, где я должен разместить свою базу данных MYSQL? Все эти компьютеры должны иметь возможность получить доступ к одной базе данных через Интернет.Как получить доступ к удаленной базе данных mysql с помощью java

ответ

3

Не совсем распространено разрешение доступа к базе данных непосредственно через Интернет для обеспечения безопасности (авторизация авторизации, шифрование) и соображения производительности. В большинстве случаев вы должны создать веб-серверное приложение, которое может выполнять операции с базой данных, обеспечивая соблюдение правил ведения бизнеса, домена и безопасности. Клиентское приложение совершает вызовы через Интернет (с использованием вызовов REST, AJAX-вызовов или что-то проприетарное) и возвращает результаты с сервера.

В вашем случае, поскольку ваше клиентское программное обеспечение является Java, вам может понадобиться исследование Java Servlets и запустить что-то легкое, например Tomcat, в качестве serer.

Для объяснения отношений клиент-сервер см. this page и this page.

+0

Спасибо. Я знаю, что создание веб-сайта будет служить этой цели, но я уже создал приложение SWING. – wishman

+0

Вы меня неправильно поняли. Я говорю о приложении на стороне сервера, которое ваше приложение Swing вызывается для получения его данных. Я включил ссылки в конце, чтобы объяснить, как и почему. –

1

Ну, возможность безгранична. Вы можете разместить ее на каждом компьютере, доступном другим. До тех пор, пока вы можете получить доступ к базе данных через сеть, на самом деле не имеет значения, где она находится. Но если компьютеры с вашим клиентом Swing все подключены в локальной сети, чем хранить БД на компьютере с лучшей производительностью. В качестве подсказки используйте IP-адрес и динамический порт из текста или записи, поэтому вы не перекомпилируете каждый раз, когда вы меняете IP-адрес. Chiers !!

+0

Thats more like it :) Теперь моя база данных хранится на одном компьютере, который подключен к локальной сети. Но есть еще несколько компьютеров, которые не подключены к этой ЛВС, потому что они находятся где-то в другом месте. Как настроить IP-адрес, если эти компьютеры хотели подключиться к базе данных через Интернет? Спасибо – wishman

+0

Если вы действительно хотите пройти этот маршрут, вы можете подключить удаленные пользователи VPN в локальной сети (см. Http://en.wikipedia.org/wiki/Virtual_private_network). Тем не менее, я по-прежнему рекомендую иметь серверный компонент между приложением и базой данных. –

+1

Я согласен с dj_segfault .... VPN с архитектурой брокера ... Но самое простое решение для вашей проблемы простое, просто выберите хостинг, предлагающий возможность базы данных, и поместите его на этот сервер. Я предполагаю, что вы не используете сложные транзакции, поэтому это не будет проблемой с hudge. Но я настоятельно рекомендую дать каждому качающему приложению другого пользователя, отключить автокоммутацию и работать с транзакциями. – Darwly

2
  1. Поместите свою базу данных на хост, доступную по Интернету.
  2. Для каждого внешнего IP-адреса каждого из хостов Applicaton создайте пользователя на mysql.

    GRANT ALL PRIVILEGES TO database.* to `user1`@`APPLICATION_HOST_IP` identified by 'PASSWORD'; 
    

Теперь user1 будет иметь доступ с APPLICATION_HOST_IP IP.

+0

Я использовал VPN-клиент с именем «Hamachi», чтобы получить статический IP-адрес. – wishman