全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件

连接数据库

更新时间:2017-07-11 15:51:07

Greenplum Database 开源数据库基于 PostgreSQL 8.2 分支开发,完整兼容其消息协议,云数据库 HybridDB for PostgreSQL 同样基于此版本。因此,理论上来讲,HybridDB for PostgreSQL 用户可以直接使用支持 PostgreSQL 8.2 消息协议的工具,例如 libpq、JDBC、ODBC、psycopg2、pgadmin III 等。

HybridDB for PostgreSQL 提供了 Redhat 平台的二进制 psql 程序,下载链接参见 客户端工具。Greenplum 官网也提供了一个安装包,包含 JDBC、ODBC 和 libpq,方便安装和使用,详情参见 Greenplum 官方文档

psql

psql 是 Greenplum 中比较常用的工具,提供了丰富的命令,其二进制文件在 Greenplum 安装后的 BIN 目录下。使用步骤如下所示:

  1. 通过如下任意一种方式进行连接:

    • 连接串的方式

      1. psql "host=yourgpdbaddress.gpdb.rds.aliyuncs.com port=3568 dbname=postgres user=gpdbaccount password=gpdbpassword"
      2. postgres=> select version();
      3. version
      4. -----------------------------------------------------------------------------------------------
      5. PostgreSQL 8.3devel (Greenplum Database 4.3.99.00 build dev) compiled on Jun 26 2016 23:44:59
      6. (1 row)
    • 指定参数的方式

      1. psql -h yourgpdbaddress.gpdb.rds.aliyuncs.com -p 3568 -d postgres -U gpdbaccount
  2. 输入密码,进入 psql 的 Shell 界面。

    1. postgres=> select version();
    2. version
    3. -----------------------------------------------------------------------------------------------
    4. PostgreSQL 8.3devel (Greenplum Database 4.3.99.00 build dev) compiled on Jun 26 2016 23:44:59
    5. (1 row)

    参数说明:

    • -h:指定主机地址。
    • -p:指定端口号。
    • -d:指定数据库(默认的数据库是 postgres),
    • -U:指定连接的用户。
    • 可以通过psql --help查看更多选项。在 psql 中,可以执行\?查看更多 psql 中支持的命令。

参考文档

  • 关于 Greenplum 的 psql 的更多使用方法,请参见文档“psql”。

  • HybridDB for PostgreSQL 也支持 PostgreSQL 的 psql 命令,使用时请注意细节上的差异。详情参见“PostgreSQL 8.3.23 Documentation — psql”。

pgAdmin III

pgAdmin III 是 PostgreSQL 图形客户端,可以直接用于连接 HybridDB for PostgreSQL。详情参见 这里

您可以从 PostgreSQL 官网 下载 pgAdmin III 1.6.3。pgAdmin III 1.6.3 支持各种平台,例如 Windows、MacOS 和 Linux。其它图形客户端,详情参见 客户端工具

注意:HybridDB for PostgreSQL 与 PostgreSQL 8.2 版本兼容,因此必须使用 pgAdmin III 1.6.3 或之前的版本才能连接 HybridDB for PostgreSQL(pgAdmin 4 也是不支持的)。

操作步骤

  1. 下载安装 pgAdmin III 1.6.3 或之前的版本。

  2. 选择文件 > 新增服务器,进入配置连接窗口。

  3. 填写配置信息,如下图所示:

    在pgAdmin中配置HybridDB连接

  4. 单击确定,即可连接到 HybridDB。

JDBC

JDBC 采用 PostgreSQL 官方提供接口。下载方法如下:

代码示例

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.sql.Statement;
  6. public class gp_conn {
  7. public static void main(String[] args) {
  8. try {
  9. Class.forName("org.postgresql.Driver");
  10. Connection db = DriverManager.getConnection("jdbc:postgresql://mygpdbpub.gpdb.rds.aliyuncs.com:3568/postgres","mygpdb","mygpdb");
  11. Statement st = db.createStatement();
  12. ResultSet rs = st.executeQuery("select * from gp_segment_configuration;");
  13. while (rs.next()) {
  14. System.out.print(rs.getString(1));
  15. System.out.print(" | ");
  16. System.out.print(rs.getString(2));
  17. System.out.print(" | ");
  18. System.out.print(rs.getString(3));
  19. System.out.print(" | ");
  20. System.out.print(rs.getString(4));
  21. System.out.print(" | ");
  22. System.out.print(rs.getString(5));
  23. System.out.print(" | ");
  24. System.out.print(rs.getString(6));
  25. System.out.print(" | ");
  26. System.out.print(rs.getString(7));
  27. System.out.print(" | ");
  28. System.out.print(rs.getString(8));
  29. System.out.print(" | ");
  30. System.out.print(rs.getString(9));
  31. System.out.print(" | ");
  32. System.out.print(rs.getString(10));
  33. System.out.print(" | ");
  34. System.out.println(rs.getString(11));
  35. }
  36. rs.close();
  37. st.close();
  38. } catch (ClassNotFoundException e) {
  39. e.printStackTrace();
  40. } catch (SQLException e) {
  41. e.printStackTrace();
  42. }
  43. }
  44. }

详细文档,请参见“The PostgreSQL JDBC Interface”。

Python

Python 连接 Greenplum 和 PostgreSQL 用的库是 psycopg2。使用步骤如下:

  1. 安装 psycopg2。在 CentOS 下,有如下三种安装方法:

    • 方法一,执行如下命令:yum -y install python-psycopg2

    • 方法二,执行如下命令:pip install psycopg2

    • 从源码安装:

      1. yum install -y postgresql-devel*
      2. wget http://initd.org/psycopg/tarballs/PSYCOPG-2-6/psycopg2-2.6.tar.gz
      3. tar xf psycopg2-2.6.tar.gz
      4. cd psycopg2-2.6
      5. python setup.py build
      6. sudo python setup.py install
  2. 安装后,设置 PYTHONPATH,之后就可以引用,如:

    1. import psycopg2
    2. sql = 'select * from gp_segment_configuration;'
    3. conn = psycopg2.connect(database='gpdb', user='mygpdb', password='mygpdb', host='mygpdbpub.gpdb.rds.aliyuncs.com', port=3568)
    4. conn.autocommit = True
    5. cursor = conn.cursor()
    6. cursor.execute(sql)
    7. rows = cursor.fetchall()
    8. for row in rows:
    9. print row
    10. conn.commit()
    11. conn.close()

    会得到类似以下的结果:

    1. (1, -1, 'p', 'p', 's', 'u', 3022, '192.168.2.158', '192.168.2.158', None, None)
    2. (6, -1, 'm', 'm', 's', 'u', 3019, '192.168.2.47', '192.168.2.47', None, None)
    3. (2, 0, 'p', 'p', 's', 'u', 3025, '192.168.2.148', '192.168.2.148', 3525, None)
    4. (4, 0, 'm', 'm', 's', 'u', 3024, '192.168.2.158', '192.168.2.158', 3524, None)
    5. (3, 1, 'p', 'p', 's', 'u', 3023, '192.168.2.158', '192.168.2.158', 3523, None)
    6. (5, 1, 'm', 'm', 's', 'u', 3026, '192.168.2.148', '192.168.2.148', 3526, None)

libpq

libpq 是 PostgreSQL 数据库的 C 语言接口,在 C 程序中通过 libpq 库访问 PostgreSQL 数据库并进行数据库操作。在安装了 Greenplum 或者 PostgreSQL 之后,在其 lib 目录下可以找到其静态库和动态库。

相关案例请参见 这里,此处不再列举。

关于 libpq 详情,请参见“PostgreSQL 9.4.10 Documentation — Chapter 31. libpq - C Library”。

ODBC

PostgreSQL 的 ODBC 是基于 LGPL(GNU Lesser General Public License)协议的开源版本,可以在 PostgreSQL 官网下载。

操作步骤

  1. 安装驱动。

    1. yum install -y unixODBC.x86_64
    2. yum install -y postgresql-odbc.x86_64
  2. 查看驱动配置。

    1. cat /etc/odbcinst.ini
    2. # Example driver definitions
    3. # Driver from the postgresql-odbc package
    4. # Setup from the unixODBC package
    5. [PostgreSQL]
    6. Description = ODBC for PostgreSQL
    7. Driver = /usr/lib/psqlodbcw.so
    8. Setup = /usr/lib/libodbcpsqlS.so
    9. Driver64 = /usr/lib64/psqlodbcw.so
    10. Setup64 = /usr/lib64/libodbcpsqlS.so
    11. FileUsage = 1
    12. # Driver from the mysql-connector-odbc package
    13. # Setup from the unixODBC package
    14. [MySQL]
    15. Description = ODBC for MySQL
    16. Driver = /usr/lib/libmyodbc5.so
    17. Setup = /usr/lib/libodbcmyS.so
    18. Driver64 = /usr/lib64/libmyodbc5.so
    19. Setup64 = /usr/lib64/libodbcmyS.so
    20. FileUsage = 1
  3. 配置 DSN,将如下代码中的****改成对应的连接信息。

    1. [mygpdb]
    2. Description = Test to gp
    3. Driver = PostgreSQL
    4. Database = ****
    5. Servername = ****.gpdb.rds.aliyuncs.com
    6. UserName = ****
    7. Password = ****
    8. Port = ****
    9. ReadOnly = 0
  4. 测试连通性。

    1. echo "select count(*) from pg_class" | isql mygpdb
    2. +---------------------------------------+
    3. | Connected! |
    4. | |
    5. | sql-statement |
    6. | help [tablename] |
    7. | quit |
    8. | |
    9. +---------------------------------------+
    10. SQL> select count(*) from pg_class
    11. +---------------------+
    12. | count |
    13. +---------------------+
    14. | 388 |
    15. +---------------------+
    16. SQLRowCount returns 1
    17. 1 rows fetched
  5. ODBC 已连接上实例,将应用连接 ODBC 即可,请参见 这里 C# 连接到 PostgreSQL

参考文档

本文导读目录