проблема подключения смешанного режима h2

Я запускаю базу данных h2 в прослушивателе контекста сервлета:

public void contextInitialized(ServletContextEvent sce) {
     org.h2.Driver.load();
     String apprealPath = sce.getServletContext().getRealPath("\\");
     String h2Url = "jdbc:h2:file:" + apprealPath + "DB\\cdb;AUTO_SERVER=true";
     LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); 
        StatusPrinter.print(lc); 
     logger.debug("h2 url : " + h2Url);
     try {
   conn = DriverManager.getConnection(h2Url, "sa", "sa");
  } catch (SQLException e) {
   e.printStackTrace();
  }
  logger.debug("h2 database started in embedded mode");
        sce.getServletContext().setAttribute("connection", conn);
    }

затем я пытаюсь использовать dbvisualizer для подключения к h2, используя следующий URL-адрес:

jdbc:h2:tcp://localhost/~/cdb

но получить эти сообщения об ошибках:

An error occurred while establishing the connection:
   Type: org.h2.jdbc.JdbcSQLException   Error Code: 90067   SQL State: 90067
Message:
   Connection is broken: "Connection refused: connect" [90067-148]

Я попытался заменить локальный хост на «172.17.33.181:58524» (я нашел его в cdb.lock.db), переподключиться с пользователем «sa», пароль «sa», затем ответ сервера изменился на: неправильное имя пользователя или пароль!


h2
person idiotgenius    schedule 24.12.2010    source источник


Ответы (1)


В автоматическом смешанном режиме вам не нужно (и вы не можете) используйте 1_. Просто используйте один и тот же URL везде, это означает jdbc:h2:file:...DB\\cdb;AUTO_SERVER=true.

Вы можете использовать один и тот же URL-адрес базы данных независимо от того, открыта база данных или нет. Явные соединения клиент/сервер (с использованием jdbc:h2:tcp:// или ssl://) не поддерживаются.

person Thomas Mueller    schedule 24.12.2010
comment
привет, Томас Мне нужна помощь в переводе документации H2 на упрощенный китайский язык. - person idiotgenius; 27.12.2010
comment
Я считаю, что уже предпринимаются попытки перевести документацию, см. groups.google.com/group/h2. -сп - person Thomas Mueller; 27.12.2010
comment
Люди из Китая не могут получить доступ к группе Google, за исключением того, что они используют программное обеспечение сетевого прокси. Наш правительственный брандмауэр проклят. - person idiotgenius; 27.12.2010
comment
Извините за задержку. Возможен ли доступ к веб-сайту h2database.com из Китая? - person Thomas Mueller; 14.01.2011
comment
Это просто спасло мой день. Запускал серверы вручную и изо всех сил пытался найти разумный способ запуска сервера h2 после загрузки моей среды, но до того, как произошло подключение к базе данных (frameworks ftw...). - person August Lilleaas; 10.05.2013
comment
@ThomasMueller - у меня похожая проблема. Я хочу запустить сервер базы данных h2 и подключить к нему несколько локальных приложений. Должен ли я запускать сервер в смешанном режиме? Если да, то как должен выглядеть код для запуска сервера? Учитывая, что мне понадобится только tcp-сервер, я подумал об использовании метода Server.createTcpServer(), но он не принимает URL-адрес. Пожалуйста, поделитесь своими мыслями. Спасибо! - person Andy Dufresne; 19.03.2018