Connect remotely to an H2 Database using a Java Application

前端 未结 1 1527
失恋的感觉
失恋的感觉 2021-01-03 02:20

I\'m having the following problem: When I try to createTcpServer with my external IP address (the PC\'s IP and not my local IP = the one we see as an output after running ip

相关标签:
1条回答
  • 2021-01-03 02:44

    As suggested in the command line help shown below, Protection against Remote Access advises the following:

    By default this database does not allow connections from other machines when starting the H2 Console, the TCP server, or the PG server. Remote access can be enabled using the command line options -webAllowOthers, -tcpAllowOthers, -pgAllowOthers.

    See the documentation for important caveats regarding these options.

    Addendum: Works for me, as long as I restart the Server after opening the firewall; you don't need the setProperty() line at all; the LAN IP to which your WAN_IP forwards port 9092 should be your host IP address; then you can open a shell via your WAN_IP:

    java -cp h2.jar org.h2.tools.Shell -url 
        jdbc:h2:tcp://WAN_IP/~/path/to/test;ifexists=true"
    

    Command line help:

    $ java -cp .:/opt/h2/bin/h2.jar org.h2.tools.Shell -?
    Interactive command line tool to access a database using JDBC.
    Usage: java org.h2.tools.Shell 
    Options are case sensitive. Supported options are:
    [-help] or [-?]        Print the list of options
    [-url ""]         The database URL (jdbc:h2:...)
    [-user ]         The user name
    [-password ]      The password
    [-driver ]      The JDBC driver class to use (not required in most cases)
    [-sql ""]  Execute the SQL statements and exit
    [-properties ""]  Load the server properties from this directory
    If special characters don't work as expected, you may need to use
     -Dfile.encoding=UTF-8 (Mac OS X) or CP850 (Windows).
    See also http://h2database.com/javadoc/org/h2/tools/Shell.html
    
    $ java -cp /opt/h2/bin/h2.jar org.h2.tools.Server -?
    Starts the H2 Console (web-) server, TCP, and PG server.
    Usage: java org.h2.tools.Server 
    When running without options, -tcp, -web, -browser and -pg are started.
    Options are case sensitive. Supported options are:
    [-help] or [-?]         Print the list of options
    [-web]                  Start the web server with the H2 Console
    [-webAllowOthers]       Allow other computers to connect - see below
    [-webDaemon]            Use a daemon thread
    [-webPort ]       The port (default: 8082)
    [-webSSL]               Use encrypted (HTTPS) connections
    [-browser]              Start a browser connecting to the web server
    [-tcp]                  Start the TCP server
    [-tcpAllowOthers]       Allow other computers to connect - see below
    [-tcpDaemon]            Use a daemon thread
    [-tcpPort ]       The port (default: 9092)
    [-tcpSSL]               Use encrypted (SSL) connections
    [-tcpPassword ]    The password for shutting down a TCP server
    [-tcpShutdown ""]  Stop the TCP server; example: tcp://localhost
    [-tcpShutdownForce]     Do not wait until all connections are closed
    [-pg]                   Start the PG server
    [-pgAllowOthers]        Allow other computers to connect - see below
    [-pgDaemon]             Use a daemon thread
    [-pgPort ]        The port (default: 5435)
    [-properties ""]   Server properties (default: ~, disable: null)
    [-baseDir ]        The base directory for H2 databases (all servers)
    [-ifExists]             Only existing databases may be opened (all servers)
    [-trace]                Print additional trace information (all servers)
    The options -xAllowOthers are potentially risky.
    For details, see Advanced Topics / Protection against Remote Access.
    See also http://h2database.com/javadoc/org/h2/tools/Server.html
    
    0 讨论(0)
提交回复
热议问题