H2DBでリモートからのJDBC接続
これの続き。
saku-jp.hatenablog.com
リモートからWebコンソールにアクセスできるようになって、JDBC接続もできるようになったんかと思ってたら、そうは問屋が卸してくれない🤔
JDBCドライバから接続してみたら以下のような例外が発生した。
Exception in thread "main" org.h2.jdbc.JdbcSQLNonTransientConnectionException: このサーバへのリモート接続は許されていません, -tcpAllowOthersを参照 Remote connections to this server are not allowed, see -tcpAllowOthers [90117-220] at org.h2.message.DbException.getJdbcSQLException(DbException.java:690) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:223) at org.h2.message.DbException.get(DbException.java:199) at org.h2.message.DbException.get(DbException.java:188) at org.h2.server.TcpServerThread.run(TcpServerThread.java:95) at java.base/java.lang.Thread.run(Thread.java:1623)
リモートからWebコンソールのアクセス許可[webAllowOthers]
リモートからWebコンソールにアクセスできるにする設定は、webAllowOthersオプションを設定する。
サービス起動なので、C:\Windows\System32\config\systemprofile\.h2.server.propertiesファイルのwebAllowOthersオプションをtrueに設定する。
webAllowOthers=true
Webコンソールの画面では、以下の設定に相当する。
もしくはサービス起動なので、%H2DB_HOME%\service\wrapper.confファイルのwrapper.app.parameterパラメータを設定する。
wrapper.app.parameter.n=-webAllowOthers
リモートからJDBC(TCP)接続のアクセス許可[tcpAllowOthers]
リモートからWebコンソールにアクセスできるにする設定は、tcpAllowOthersオプションを設定する。
サービス起動なので、%H2DB_HOME%\service\wrapper.confファイルのwrapper.app.parameterパラメータを設定する。
wrapper.app.parameter.n=-tcpAllowOthers
合わせてbaseDirオプションを設定し、ベースディレクトリ下のデータベースファイルのみアクセスできるようにする。
これも%H2DB_HOME%\service\wrapper.confファイルのwrapper.app.parameterパラメータを設定する。
wrapper.app.parameter.(n+0)=-baseDir wrapper.app.parameter.(n+1)="ベースとなるディレクトリのパス(c:\hoge\fuga)"