tencent cloud

文档反馈

连接数据库

最后更新时间:2024-02-19 10:49:28
    默认情况下仅支持同一 VPC 子网下的 CVM 服务器对云数据仓库 PostgreSQL 集群进行访问;如需支持公网直接访问数据仓库集群,请申请 外网地址
    您在创建好数据仓库集群,开始使用数据库服务前,需要使用数据库客户端连接到数据库。请参考以下指导,使用 psql 客户端工具连接数据库。
    1. 获取集群访问地址:通过集群 JDBC URL 中的 IP 和端口连接数据库。
    2. 连接到集群数据库:安装客户端并连接集群数据库。

    前提条件

    1. 已获取云数据仓库 PostgreSQL 集群的数据库管理员密码。数据库管理员密码为开始创建集群时设置的管理员账号密码。
    2. 已获取创建好的云数据仓库 PostgreSQL 集群的访问 IP、端口以及 VPC 和子网。

    获取集群访问地址和本地网络

    选择对应的集群,详细信息如图所示,获取 VPC 网络:vpc-aejsd98p,子网:subnet-83knqldq。链接 Snova 的 IP 为10.0.6.10,端口为5432,登录帐户为 lambuser。
    

    命令行连接到集群数据库

    在获取的 VPC 网络:vpc-aejsd98p,子网:subnet-83knqldq 中选择一台 CVM 服务器(如果不存在,则购买一台即可)。登录该服务器,执行以下命令,即可安装 PostgreSQL 客户端。
    yum install -y postgresql.x86_64
    执行下面的 SQL 命令,然后输入创建集群时输入的密码,即可登录成功。
    psql –h10.0.6.10  –p5432  –dpostgres  –Ulambuser

    JDBC 连接数据库

    需要获取 PostgresSQL 官方提供的 JDBC,下载地址
    或者在 pom.xml 文件中添加如下配置:
    <dependencies>
    <dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.2.2</version>
    </dependency>
    </dependencies>

    示例代码

    package com.qcloud.snova_conn;
    
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.Statement;
    import java.sql.Timestamp;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Properties;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import com.yammer.metrics.core.Meter;
    
    public class SnovaConn {
    /*
    * args: vip vport user pwd
    */
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
    
    if (args.length < 4){
    System.out.println("args err");
    return;
    }
    
    String vip = args[0];
    String vport = args[1];
    String userName = args[2];
    String userPwd = args[3];
    
    System.out.printf("vip:%s, vport:%s, userName:%s, userPwd:%s\\n",vip, vport, userName, userPwd);
    String jdbcUrl = "jdbc:postgresql://" + vip+":"+vport+"/maxluo";
    System.out.printf("jdbcUrl:%s \\n",jdbcUrl);
    
    Class.forName("org.postgresql.Driver");
    Connection snova = DriverManager.getConnection(jdbcUrl,userName,userPwd);
    Statement st = snova.createStatement();
    ResultSet rs = st.executeQuery("select * from test;");
    while (rs.next()) {
    System.out.print(rs.getString(1));
    System.out.print("\\n");
    }
    rs.close();
    st.close();
    }
    }

    pom.xml 配置

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>com.qcloud</groupId>
    <artifactId>snova-conn</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    
    <name>snova-conn</name>
    <url>http://maven.apache.org</url>
    
    <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    
    <dependencies>
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.40</version>
    </dependency>
    <dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.2.2</version>
    </dependency>
    <dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.4.0.jre8</version>
    </dependency>
    <dependency>
    <groupId>com.yammer.metrics</groupId>
    <artifactId>metrics-core</artifactId>
    <version>2.2.0</version>
    </dependency>
    <dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.1.9</version>
    </dependency>
    </dependencies>
    
    <build>
    <plugins>
    <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
    <descriptorRefs>
    <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
    </configuration>
    <executions>
    <execution>
    <id>make-assembly</id>
    <phase>package</phase>
    <goals>
    <goal>single</goal>
    </goals>
    </execution>
    </executions>
    </plugin>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
    <excludes>
    <exclude>*.properties</exclude>
    <exclude>*.xml</exclude>
    <exclude>*.json</exclude>
    <exclude>*.sh</exclude>
    </excludes>
    </configuration>
    </plugin>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
    <execution>
    <id>copy-dependencies</id>
    <phase>package</phase>
    <goals>
    <goal>copy-dependencies</goal>
    </goals>
    <configuration>
    <type>jar</type>
    <includeTypes>jar</includeTypes>
    <outputDirectory>
    ${project.build.directory}/lib
    </outputDirectory>
    </configuration>
    </execution>
    </executions>
    </plugin>
    </plugins>
    </build>
    </project>
    然后采用 Maven 打包生成 jar 文件,并把该 jar 包上传至 CVM 服务器(该云数据仓库 PostgreSQL 集群所在 VPC 子网中的任意一台 CVM 均可)。
    执行以下命令安装 jdk。
    yum install java
    执行命令:
    java –cp snova-conn-0.0.1-SNAPSHOT-jar-with-dependencies.jar com.qcloud.snova_conn.SnovaConn 10.0.8.5 5436 lambuser lambpwd11
    注意:
    VIP 和端口分别为云数据仓库 PostgreSQL 集群链接地址,用户名和密码分别是创建集群时填写的信息,具体获取方式见前文。
    通过命令行方式建立数据库和数据表,并插入一定量的数据。
    查询结果如下,可以读取到事先建立的数据库 maxluo 中表 test 中的数据:
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持