前提条件
客户端已安装zsql工具。
连接数据库时使用的用户需要具备访问数据库的权限。
通过zsql或者JDBC等API方式远程接入数据库之前,需要在配置文件zengine.ini中设置LSNR_IP和LSNR_PORT侦听的IP地址和端口号。一次最多可以设置8个侦听的IP地址,IP地址中间通过逗号隔开。详细介绍请参见《GaussDB 100 V300R001C00 用户指南(单机)》的“数据库使用 > 配置客户端接入认证”。
远程接入数据库之前,需要已经在本地客户端上配置过客户端接入认证。客户端接入认证的配置方法请参见《GaussDB 100 V300R001C00 用户指南(单机)》“数据库使用 > 配置客户端接入认证”。
注意事项
若数据库用户的密码中包含特殊字符$,通过zsql连接数据库时须使用\转义字符转义,否则会登录失败。
操作步骤-使用TCP连接数据库
使用服务端zsql通过TCP登录数据库时支持本地连接数据库和远程连接数据库。本地登录和远程登录的区别在于:本地登录使用的IP地址为本地回环地址;远程登录使用的是远端IP地址。
TCP登录方式与通过UNIX DOMAIN SOCKET方式建立数据库连接的唯一不同是URL不一样。通过TCP协议建立数据库连接时,需要指定IP和端口,而通过UDS(Unix Domain Socket)方式建立数据库连接时,不需要指定IP和端口。
以数据库管理员身份登录(只有数据库管理员才可以免密登录)。
zsql{ CONNECT | CONN } / AS SYSDBA [ip:port] [-D /home/gaussdba/data1] [-q] [-s ""silent_file""] [-w connect_timeout]
其中[ip:port] 为可选项,若不指定则默认连接本地主机。
当数据库系统管理员起了多个数据库实例时,连接指定的数据库时,需要使用-D参数指定数据库目录。
-q参数用于取消SSL登录认证检查。-s参数用于设置无提示模式执行SQL。
-w参数用于设置客户端连接数据库时的等待响应超时时间。取值范围:-1: 表示一直等待服务器响应,不超时;0:不等待超时,直接返回结果;n:等待n秒。默认值是10s。使用该参数后,zsql启动连接数据库时,设置等待超时时间为指定值,启动后,当前建立连接的等待响应超时时间、再次建立的新连接的等待响应超时时间以及查询超时时间均为设置值,退出zsql进程,设置失效。
以普通数据库用户身份登录。
GaussDB 100支持交互模式和非交互模式两种方式登录。
其中,user为数据库用户名,password为数据库用户密码。ip:port为数据库所在主机的IP地址和端口号,默认端口号为1888。
当操作数据库系统管理员起了多个数据库实例时,连接指定的数据库时,需要使用-D参数指定数据库目录。
-q参数用于取消SSL登录认证检查。-s参数用于设置无提示模式执行SQL。
-w参数用于配置客户端连接数据库时的等待响应超时时间。取值范围:-1: 表示一直等待服务器响应,不超时;0:不等待超时,直接返回结果;n:等待n秒。默认值是10s。使用该参数后,zsql启动连接数据库时,设置等待超时时间为指定值,启动后,当前建立连接的等待响应超时时间、再次建立的新连接的等待响应超时时间以及查询超时时间均为设置值,退出zsql进程,设置失效。
交互方式登录1:
zsql user@ip:port [-D /home/gaussdba/data1] [-q] [-s ""silent_file""] [-w connect_timeout]
根据提示输入密码。
Please enter password:
交互方式登录2:
zsqlconn user/user_password@ip:port [-D /home/gaussdba/data1] [-q] [-s ""silent_file""] [-w connect_timeout]
非交互方式登录:
zsql user/user_password@ip:port [-D /home/gaussdba/data1] [-q] [-s ""silent_file""] [-w connect_timeout]
操作步骤-使用UDS连接数据库
通过UDS登录数据库只支持以普通数据库用户身份本地登录。与通过TCP协议建立数据库连接的唯一不同是URL不一样。通过TCP协议建立数据库连接时,需要指定IP和端口,而通过UDS(Unix Domain Socket)方式建立数据库连接时,不需要指定IP和端口。
sql UDS默认连接{GSDB_DATA}/protect/gsdb_uds_emerg.server,用于紧急预留会话登录。普通用户登录若使用此配置,则会占用紧急预留会话资源。
如果要切换用于用户会话的UDS路径, 需要服务端和客户端分别配置监听的UDS socket文件,此时用户登录的会话不再占用紧急预留会话。以数据目录为/opt/gaussdb/data为例,修改监听的socket文件为server.socket,则配置如下:
服务端参数设置(需要重启数据库):
alter system set UDS_FILE_PATH='/opt/gaussdb/data/protect/server.socket'
客户端参数设置:
set UDS_SERVER_PATH=/opt/gaussdb/data/protect/server.socket
另外,客户端UDS标识也支持可配置(可选):
set UDS_CLIENT_PATH=***
注意:UDS_FILE_PATH、UDS_SERVER_PATH、UDS_CLIENT_PATH在非默认配置情况下、均需要指定绝对路径名,否则会导致客户端由于无法找到监听文件而连接失败。如果连接失败,退出zsql进程。
GaussDB 100支持交互模式和非交互模式两种方式登录。
交互方式登录:
zsql user@uds [-D /home/omm/data1] [-q] [-s ""silent_file""] [-w connect_timeout]
根据提示输入密码。
Please enter password:
非交互方式登录:
zsql user/user_password@uds [-D /home/omm/data1] [-q] [-s ""silent_file""] [-w connect_timeout]
其中,user为数据库用户名,password为数据库用户密码。uds是unix domain socket缩写,不区分大小写。
-q参数用于取消SSL登录认证检查。-s参数用于设置无提示模式执行SQL。
-w参数用于设置客户端连接数据库时的等待响应超时时间。取值范围:-1: 表示一直等待服务器响应,不超时;0:不等待超时,直接返回结果;n:等待n秒。默认值是10s。使用该参数后,zsql启动连接数据库时,设置等待超时时间为指定值,启动后,当前建立连接的等待响应超时时间、再次建立的新连接的等待响应超时时间以及查询超时时间均为设置值,退出zsql进程,设置失效。
示例
用户gaussdba本地登录数据库。
zsql
CONN gaussdba/database_123@127.0.0.1:1888
connected.
启动zsql进程时设置等待响应超时时间。
--启动zsql进程时设置等待响应超时时间为20s。启动后,当前建立连接的等待响应超时时间为20s。
zsql gaussdba/database_123@127.0.0.1:1888 -w 20
connected.
--创建新用户jim,并赋予新用户CREATE SESSION权限。
DROP USER IF EXISTS jim;
CREATE USER jim IDENTIFIED BY database_123;
GRANT CREATE SESSION TO jim;
--切换用户,再次建立的新连接的等待响应超时时间也是20s。
CONN jim/database_123@127.0.0.1:1888
connected.
--退出zsql进程时,设置失效,之后新建立连接的等待响应超时时间仍然是默认值10s。
EXIT