云数据库 GAUSSDB-以UDS方式连接

时间:2024-11-13 14:45:37

以UDS方式连接

Unix domain socket用于同一主机上不同进程间的数据交换,通过添加junixsocket获取套接字工厂使用。

前置条件:引用junixsocket-core-XXX.jar、junixsocket-common-XXX.jar、junixsocket-native-common-XXX.jar,XXX为版本号,引用的这些jar包版本号需要一致。

使用NonValidatingFactory通道连接数据库的命令如下:

  1. 导入java.sql.Connection、java.sql.DriverManager、java.util.Properties。

    此外,用户需要根据实际的应用场景,再导入其他的接口和类,详见JDBC接口参考
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.util.Properties;

  2. 指定数据库的用户名和密码。

    用户名和密码直接写到代码中有很大的安全风险,建议在环境变量中存放。并将用户名和密码设置为Properties对象的属性值。
    String userName = System.getenv("EXAMPLE_USERNAME_ENV");
    String password = System.getenv("EXAMPLE_PASSWORD_ENV");
    Properties properties = new Properties();
    properties.setProperty("user", userName);
    properties.setProperty("password", password);

  3. 加载驱动。

    1. 在代码运行工具(如IDE)中添加gaussdbjdbc.jar包。
    2. 执行以下命令加载数据库驱动程序“com.huawei.gaussdb.jdbc.Driver”。
    String driver = "com.huawei.gaussdb.jdbc.Driver";
    Class.forName(driver);

  4. 指定数据库的$ip、$port、database、socketFactory和socketFactoryArg。

    $ip和$port需要用户自行修改,连接主机名database必须设置为“localhost”,socketFactory设置为org.newsclub.net.unix.AFUNIXSocketFactory$FactoryArg,socketFactoryArg设置为[path-to-the-unix-socket],实现以UDS方式连接数据库。socketFactory和socketFactoryArg参数的具体说明,详见socketFactorysocketFactoryArg

    socketFactoryArg参数配置根据真实路径进行配置,与GUC参数unix_socket_directory的值保持一致。

    Connection conn = DriverManager.getConnection("jdbc:gaussdb://$ip:$port/database?socketFactory=org.newsclub.net.unix" +
            ".AFUNIXSocketFactory$FactoryArg&socketFactoryArg=[path-to-the-unix-socket]",properties);
    System.out.println("Connection Successful!");

support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0071.html