подключение имеет удаленную базу данных - PullRequest
7 голосов
/ 23 марта 2012

Я использую базу данных H2 в качестве СУБД с удаленного компьютера, поэтому я включил удаленный доступ из браузера следующим образом:

webAllowOthers=true

, но когда я пытаюсь подключиться к серверу из своего приложения Java, я получаю этоошибка из H2:

remote connections to this server are not allowed

снимок экрана: enter image description here

А также уже просматривает код анализатора с помощью (код ошибки: 90117):

REMOTE_CONNECTION_NOT_ALLOWED = 90117

Ошибка с кодом 90117 возникает при попытке подключения к TCP-серверу с другого компьютера, если удаленные подключения не разрешены.Чтобы разрешить удаленные подключения, запустите TCP-сервер, используя параметр -tcpAllowOthers, например:

java org.h2.tools.Server -tcp -tcpAllowOthers

Или когдадля запуска сервера из приложения используйте: Server server = Server.createTcpServer ("- tcpAllowOthers");server.start ();

Я не понимаю, как активировать tcpAllowOthers , он не существует в .h2.server.properties ?

1 Ответ

17 голосов
/ 23 марта 2012

Есть два разных сервера:

  • сервер веб-консоли, используемый для запуска инструмента H2 Console (инструмент с графическим интерфейсом). Доступ к нему может получить только браузер.
  • сервер TCP, который позволяет подключать приложение, использующее JDBC, при использовании режима клиент / сервер (jdbc:h2:tcp://localhost/~/test)

Файл .h2.server.properties используется только для сервера веб-консоли. Он поддерживает только webAllowOthers=true. Этот файл не используется сервером TCP.

Чтобы включить удаленный доступ к TCP-серверу, вам нужно запустить TCP-сервер, используя опцию -tcpAllowOthers. Чтобы запустить сервер веб-консоли (инструмент консоли H2) и сервер TCP с включенными удаленными подключениями, необходимо использовать:

java -jar h2*.jar -web -webAllowOthers -tcp -tcpAllowOthers -browser

(также запускается браузер)

...