更新时间:2024-06-03 GMT+08:00
连接数据库
使用如下语句连接数据库:
EXEC SQL CONNECT TO target [AS connection-name] [USER user-name];
target可以通过如下方法声明,斜体部分为变量,请根据实际情况进行修改:
- dbname[@hostname][:port]
- tcp:gaussdb://hostname[:port][/dbname][?options]
- unix:gaussdb://hostname[:port][/dbname][?options]
- 一个包含上述形式之一的SQL字符串
声明连接用户名的方法有以下方式:
- username/password
- username SQLIDENTIFIED BY password
- username USING password
如上所述,参数username以及password可以是一个SQL标识符、一个SQL字符串或一个对字符变量的引用。
connection_name表示连接名,如果一个程序只使用一个连接,则可以省略它。最近打开的连接成为当前连接。
简单示例如下:
#include <stdlib.h> EXEC SQL CONNECT TO mydb@sql.mydomain.com; EXEC SQL CONNECT TO unix:gaussdb://sql.mydomain.com/mydb AS myconnection USER username; EXEC SQL BEGIN DECLARE SECTION; /* 此处target、user、passwd应从环境变量或配置文件读取,环境变量需用户自己按需配置;非环境变量情况下可直接赋值字符串 */ const char *target = getenv("EXAMPLE_TARGET_ENV"); const char *user = getenv("EXAMPLE_USERNAME_ENV"); const char *passwd = getenv("EXAMPLE_PASSWD_ENV"); EXEC SQL END DECLARE SECTION; ... EXEC SQL CONNECT TO :target USER :user USING :passwd; /* 或者 EXEC SQL CONNECT TO :target USER :user/:passwd; */
完整使用示例,请参见CONNECT中的“连接语法使用示例”。
- 若连接语句中指定了ip-port,则必须指定username/password,该规则由GaussDB Kernel内核通信认证所决定。若不指定ip-port,则通过本地$PGPORT(UDS协议)进行通信。
- 若客户连接时使用SSL安全协议,则需要使用tcp:gaussdb://hostname[:port][/dbname][?options]连接格式,在options选项中配置sslmode=disable\require。
父主题: 管理数据库连接