Как соединиться с удаленной базой данных MySQL с Java?

Я пытаюсь создать приложение JSF с помощью Eclipse IDE. Я использую удаленный сервер MySQL в качестве своей базы данных. Как я соединяюсь с этой удаленной базой данных для того, чтобы составить таблицы и получить доступ к ним?

26
задан Gord Thompson 11 December 2018 в 17:59
поделиться

3 ответа

Просто укажите IP / имя хоста удаленной машины в строке подключения к базе данных вместо localhost. Например:

jdbc:mysql://192.168.15.25:3306/yourdatabase

Убедитесь, что нет брандмауэра, блокирующего доступ к порту 3306

Также убедитесь, что пользователь, с которым вы соединяетесь, имеет право подключаться с этого конкретного имени хоста. Для сред разработки это можно сделать по 'username'@'%'. Проверьте руководство по созданию пользователя и руководство GRANT.

41
ответ дан 28 November 2019 в 06:48
поделиться

Необходимо добавить -cp file.jar вместо -cp.

Последний возьмет только class-файлы. BTW: почему бы не использовать среду IDE, такую как netbeans, eclipse или intelliJ?

-121--4998056-

Я нахожусь в одной лодке с вами, занимаясь большим количеством приложений бизнес-типа, ничего «веселого», как игры, компиляторы или поисковые системы.

Ваш пробег будет отличаться, но, по крайней мере, по моему собственному опыту, многие команды разработчиков неохотно прыгают прямо в F #, потому что никто другой в команде не знает и даже не слышал об этом. И сразу же перед битой приходится бороться с такими вопросами, как «что это делает иначе, чем C #?» Если вы можете убедить своего босса позволить вам написать несколько демонстрационных приложений с ним, перейдите к этому!

При этом я нахожу, что C # не очень хорош в бизнес-правилах, но он обрабатывает GUI как чемпион; Неизменность F # делает разработку GUI неловкой, но бизнес-правила и рабочие процессы чувствуют себя естественно. Таким образом, два языка имеют свои сильные стороны и комплиментарны слабости друг друга.

В моих собственных бизнес-приложениях F # выполняет кружки вокруг C # в нескольких областях:

  • асинхронные рабочие процессы F # и процессоры почтовых ящиков на порядки легче работать с ними, чем с собственными потоками и даже параллельными библиотеками задач. С момента использования процессоров почтовых ящиков для межсетевой связи, я даже не помню, когда в последний раз мне приходилось блокировать или thread.join () что-либо для синхронизации вообще.

  • Определение механизмов бизнес-правил и DSL с объединениями FTW! Каждое нетривиальное приложение LOB, над которым я когда-либо работал, имеет свой язык и интерпретатор с полукоженными правилами, и почти всегда основано на рекурсивном включении перечисления, чтобы пройтись по правилам и найти совпадение. Текущий проект, который у меня есть, теперь содержит более 1300 общедоступных классов, 900 или около того являются простыми классами контейнеров для представления правила. Я думаю, что представление правил как профсоюза F # значительно уменьшит вздутие кода и сделает лучший двигатель.

  • Неизменяемый код просто работает лучше - если вы получаете новый объект с недопустимым состоянием, вам не нужно искать далеко, чтобы найти нарушающую строку кода, все, что вам нужно знать, находится в стеке вызовов. Если у вас есть изменяемый объект с недопустимым состоянием, иногда приходится тратить много времени на его отслеживание. Вы можете написать неизменяемый код в C #, но его действительно трудно не упасть на мутабельность, особенно когда вы изменяете объект в цикле.

  • Я ненавижу нули. Я не могу дать точную оценку, но кажется, что половина ошибок, которые мы получаем в производстве, являются пустыми ссылочными исключениями - объект неправильно инициализирован, и вы не знаете об этом до тех пор, пока у вас не будет 30 стековых кадров в коде. Я думаю, что F # поможет нам написать больше свободного кода с первого раза.

C # обычно хорошо работает, когда:

  • Вы пишете GUI-код или работаете с изменяемыми по своей сути системами.

  • Предоставление DLL или веб-службы множеству различных клиентов.

  • Ваш босс не позволит вам использовать нужные инструменты;)

Поэтому, если вы сможете преодолеть «почему мы хотим использовать новое языковое препятствие», я думаю, что F # действительно облегчит вашу жизнь.

-121--1332807-

Необходимо передать IP/имя узла удаленного компьютера в последовательности подключения.

import java.sql.*;
import javax.sql.*;

public class Connect
{
   public static void main (String[] args)
   {
       Connection conn = null;

       try
       {

           String url = "jdbc:mysql://localhost:3306/mydb";
           Class.forName ("com.mysql.jdbc.Driver");
           conn = DriverManager.getConnection (url,"root"," ");
           System.out.println ("Database connection established");
       }
       catch (Exception e)
       {
           e.printStackTrace();

       }
       finally
       {
           if (conn != null)
           {
               try
               {
                   conn.close ();
                   System.out.println ("Database connection terminated");
               }
               catch (Exception e) { /* ignore close errors */ }
           }
       }
   }
}
9
ответ дан 28 November 2019 в 06:48
поделиться

Кроме того, вы должны убедиться, что конфигурация сервера MySQL (/etc/mysql/my.cnf, / etc / default / mysql в Debian) не " t активирован "skip-network", и он не привязан исключительно к интерфейсу обратной связи (127.0.0.1), но также и к интерфейсу / IP-адресу, к которому вы хотите подключиться.

2
ответ дан 28 November 2019 в 06:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: