文档中心 > 自研电商后台系统-开发指引

连接数据库

更新时间:2023/06/05 访问次数:20737

云数据库 HybridDB for PostgreSQL 完全兼容 PostgreSQL 8.2 的消息协议,可以直接使用支持 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"
postgres=> select version();
version
-----------------------------------------------------------------------------------------------
PostgreSQL 8.3devel (Greenplum Database 4.3.99.00 build dev) compiled on Jun 26 2016 23:44:59
(1 row)


2)指定参数的方式

psql -h yourgpdbaddress.gpdb.rds.aliyuncs.com -p 3568 -d postgres -U gpdbaccount


3)参数说明


① -h:指定主机地址。

② -p:指定端口号。

③ -d:指定数据库(默认的数据库是 postgres),

④ -U:指定连接的用户。

⑤ 可以通过psql --help查看更多选项。在 psql 中,可以执行\?查看更多 psql 中支持的命令。


2. 输入密码,进入 psql 的 Shell 界面。psql的Shell界面如下:


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


参考文档

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

2)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. 填写配置信息,如下图所示:


image.png


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


三、JDBC


用户需要使用 PostgreSQL 官方提供的JDBC。下载方法如下:

1)单击 这里,下载 PostgreSQL 的官方 JDBC,下载之后加入到环境变量中。

2)也可采用 Greenplum 官网提供的工具包,详情请参见“Greenplum Database 4.3 Connectivity Tools for UNIX”。


代码示例


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class gp_conn {
public static void main(String[] args) {
try {
Class.forName("org.postgresql.Driver");
Connection db = DriverManager.getConnection("jdbc:postgresql://mygpdbpub.gpdb.rds.aliyuncs.com:3568/postgres","mygpdb","mygpdb");
Statement st = db.createStatement();
ResultSet rs = st.executeQuery("select * from gp_segment_configuration;");
while (rs.next()) {
System.out.print(rs.getString(1));
System.out.print(" | ");
System.out.print(rs.getString(2));
System.out.print(" | ");
System.out.print(rs.getString(3));
System.out.print(" | ");
System.out.print(rs.getString(4));
System.out.print(" | ");
System.out.print(rs.getString(5));
System.out.print(" | ");
System.out.print(rs.getString(6));
System.out.print(" | ");
System.out.print(rs.getString(7));
System.out.print(" | ");
System.out.print(rs.getString(8));
System.out.print(" | ");
System.out.print(rs.getString(9));
System.out.print(" | ");
System.out.print(rs.getString(10));
System.out.print(" | ");
System.out.println(rs.getString(11));
}
rs.close();
st.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}


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


四、Python


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

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

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

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

3)方法三,从源码安装:

yum install -y postgresql-devel*
wget http://initd.org/psycopg/tarballs/PSYCOPG-2-6/psycopg2-2.6.tar.gz
tar xf psycopg2-2.6.tar.gz
cd psycopg2-2.6
python setup.py build
sudo python setup.py install


2. 安装后,设置 PYTHONPATH 环境变量,之后就可以引用,如:


import psycopg2
sql = 'select * from gp_segment_configuration;'
conn = psycopg2.connect(database='gpdb', user='mygpdb', password='mygpdb', host='mygpdbpub.gpdb.rds.aliyuncs.com', port=3568)
conn.autocommit = True
cursor = conn.cursor()
cursor.execute(sql)
rows = cursor.fetchall()
for row in rows:
print row
conn.commit()
conn.close()


3. 会得到类似以下的结果:


(1, -1, 'p', 'p', 's', 'u', 3022, '192.168.2.158', '192.168.2.158', None, None)
(6, -1, 'm', 'm', 's', 'u', 3019, '192.168.2.47', '192.168.2.47', None, None)
(2, 0, 'p', 'p', 's', 'u', 3025, '192.168.2.148', '192.168.2.148', 3525, None)
(4, 0, 'm', 'm', 's', 'u', 3024, '192.168.2.158', '192.168.2.158', 3524, None)
(3, 1, 'p', 'p', 's', 'u', 3023, '192.168.2.158', '192.168.2.158', 3523, None)
(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. 安装驱动。


yum install -y unixODBC.x86_64
yum install -y postgresql-odbc.x86_64


2. 查看驱动配置。


cat /etc/odbcinst.ini
# Example driver definitions
# Driver from the postgresql-odbc package
# Setup from the unixODBC package
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/psqlodbcw.so
Setup = /usr/lib/libodbcpsqlS.so
Driver64 = /usr/lib64/psqlodbcw.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1
# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1


3. 配置 DSN,将如下代码中的****改成对应的连接信息。


[mygpdb]
Description = Test to gp
Driver = PostgreSQL
Database = ****
Servername = ****.gpdb.rds.aliyuncs.com
UserName = ****
Password = ****
Port = ****
ReadOnly = 0


4. 测试连通性。


echo "select count(*) from pg_class" | isql mygpdb
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select count(*) from pg_class
+---------------------+
| count |
+---------------------+
| 388 |
+---------------------+
SQLRowCount returns 1
1 rows fetched


5. ODBC 已连接上实例,将应用连接 ODBC 即可,具体操作请参见 这里 和 C# 连接到 PostgreSQL。


七、其他信息


1. 图形客户端工具

HybridDB for PostgreSQL 用户可以直接使用Greenplum 支持的客户端工具,例如 SQL Workbench、Navicat Premium、 Navicat For PostgreSQL、pgadmin III (1.6.3) 等。


2. 命令行客户端 psql

1)RHEL 或 CentOS 版本 6 和 7 平台

对于 RHEL(Red Hat Enterprise Linux)和 CentOS 版本 6 和 7 平台,可以通过以下地址进行下载,解压后即可使用:

① RHEL 6 或 CentOS 6 平台,请单击 hybriddb_client_package_el6 进行下载。

② RHEL 7 或 CentOS 7 平台,请单击 hybriddb_client_package_el7 进行下载。


2)其它 Linux 平台

适用于其它 Linux 平台的客户端工具的编译方法如下所示:

① 获取源代码。有如下两种方法:

i)直接获取git目录(需要先安装git工具)。


git clone https://github.com/greenplum-db/gpdb.git
cd gpdb
git checkout 5d870156


ii)直接下载代码。


wget https://github.com/greenplum-db/gpdb/archive/5d87015609abd330c68a5402c1267fc86cbc9e1f.zip
unzip 5d87015609abd330c68a5402c1267fc86cbc9e1f.zip
cd gpdb-5d87015609abd330c68a5402c1267fc86cbc9e1f


② 使用 gcc 等编译工具进行编译,并且进行安装:


./configure
make -j32
make install


③ 使用 psql 和 pg_dump。这两个工具的路径如下:


psql:
/usr/local/pgsql/bin/psql
pg_dump:
/usr/local/pgsql/bin/pg_dump


3)Windows 及其它平台

Windows 及其它平台的客户端工具,请到 Pivotal 网站下载 HybridDB Client。


八、参考文档


1. Pivotal Greenplum 官方文档;

2. PostgreSQL psqlODBC;

3. PostgreSQL ODBC 编译;

4. Greenplum ODBC 下载;

5. Greenplum JDBC 下载。

FAQ

关于此文档暂时还没有FAQ
返回
顶部