Что такое URL моей базы данных для удаленного подключения к серверу MySQL? - PullRequest
0 голосов
/ 06 января 2019

Попытка подключения к базе данных mysql с использованием автоматической загрузки драйвера JDBC с синтаксисом, который требует следующего: jdbc: subProtocolName: databaseURL

Я знаю, как работать с локальным хостом, который предоставляет сервер mysql, но я не сделал это удаленно, и я хочу сделать это правильно с первого раза, вместо того, чтобы кодировать свое приложение и не могу установить точки останова в файле .xml и т. д. и путаница с источником других проблем, с которыми я могу столкнуться.

Пока у меня есть: "jdbc: mysql: [url ???]: 3306 / dbname? AutoReconnect = true"

Это просто ip-адрес сервера или myusername @ [ipAddressofServer], или что-то совсем другое? Меня не устраивает, что это будет имя @ localhost: [port #], потому что это будет означать, что сервер находится локально. Я видел в Интернете вещи, которые говорят использовать «имя сервера» здесь. Это эквивалентно имени хоста? Было бы здорово, если бы пример не включал mysql на localhost. Спасибо!

1 Ответ

0 голосов
/ 06 января 2019

(Предупреждение: здесь могут быть некоторые упрощения.)

Как вам известно, компьютеры (напрямую) подключенные к Интернету, могут быть идентифицированы двумя способами:

  1. «IP-адрес», исторически в форме 151.101.1.69 (но может быть длиннее и страшнее в наше время), или
  2. a «DNS (служба доменных имен)», например, stackoverflow.com, иногда называемый "именем хоста".

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

Таким образом, если вы хотите подключиться к удаленному компьютеру, вы можете использовать его DNS-имя или IP-адрес в качестве «имени сервера» в строке подключения. Например, если в приведенных выше примерах на компьютере был запущен сервер MySQL, тогда строка подключения может быть

jdbc:mysql://151.101.1.69:3306/databasename?useUnicode=true&characterEncoding=utf8

или

jdbc:mysql://stackoverflow.com:3306/databasename?useUnicode=true&characterEncoding=utf8

Примечания:

  • На самом деле вам не нужно указывать порт 3306, потому что это порт по умолчанию для MySQL. Если вы опустите номер порта в строке подключения, драйвер попытается использовать 3306.
  • useUnicode=true&characterEncoding=utf8 являются лишь примерами общих атрибутов, которые добавляются в строку подключения. Есть лотов из них, и вы можете узнать больше о них здесь .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...