ITPub博客

首页 > 数据库 > > zsql-连接数据库

zsql-连接数据库

作者:GaussDB_数据库 时间:2020-01-10 11:33:51 0 删除 编辑
GaussDB 100支持如下两种登录数据库的方式。
  • 口令认证登录:包括远程连接的加密口令认证和本地连接的非加密口令认证。
  • 本地免密登录:Linux系统用户登录,已经完成访问人员鉴权。所以允许通过zsql工具,登录本机运行中的数据库。SYS免密登录后可以重置SYS密码。

zsql连接数据库时如果使用非交互式登录,会导致环境存在大量明文密码,建议使用交互式方式登录GaussDB 100。

免密登录不指定IP地址则默认使用的本机配置文件里面LSNR_ADDR的第一个地址。

GaussDB 100支持如下两种登录协议,两种登录协议的URL不同,通过TCP协议建立数据库连接时,需要指定IP和端口,而通过UDS(Unix Domain Socket)方式建立数据库连接时,不需要指定IP和端口。

  • TCP协议:支持zsql客户端远程连接数据库、服务端本地连接数据库、服务端远程连接数据库。
  • UDS协议:只支持以普通数据库用户身份本地登录数据库。由于数据库并发量大无法通过TCP协议方式连接时,可作为本地紧急登入进行运维的手段。

操作场景

通过zsql连接到GaussDB 100服务器,可以执行SQL命令,进行数据库操作。

前提条件

  • 连接数据库时使用的用户需要具备访问数据库的权限。
  • 通过zsql或者JDBC等API方式远程接入数据库之前,需要在配置文件zengine.ini中设置LSNR_IP和LSNR_PORT侦听的IP地址和端口号。一次最多可以设置8个侦听的IP地址,IP地址中间通过逗号隔开。详细信息请参见配置客户端接入认证。

注意事项

若创建的密码中包含特殊字符$,通过zsql连接数据库时密码在单引号里面$不需要使用\转义字符转义,密码不在单引号里面$需要使用\转义字符转义,否则会登录失败。

操作步骤-使用TCP连接数据库

通过TCP登录数据库时支持zsql客户端远程连接数据库、服务端本地连接数据库、服务端远程连接数据库。本地登录和远程登录的区别在于:本地登录使用的IP地址为本地回环地址;远程登录使用的是远端IP地址。

TCP登录方式与通过UNIX DOMAIN SOCKET方式建立数据库连接的唯一不同是URL不一样。通过TCP协议建立数据库连接时,需要指定IP和端口,而通过UDS(Unix Domain Socket)方式建立数据库连接时,不需要指定IP和端口。

  • 以数据库管理员身份登录(只有数据库管理员才可以免密登录)。
    zsql
    { CONNECT | CONN } / AS SYSDBA [ip:port] [-D /home/omm/data1]

    其中[ip:port] 为可选项,若不指定则默认连接本地主机。

    当数据库系统管理员起了多个数据库实例时,连接指定的数据库时,需要使用-D参数指定当前CN节点的DATA路径。

    -q参数用于取消SSL登录认证检查。-s参数用于设置无提示模式执行SQL。

    -w参数用于设置客户端连接数据库时的等待响应超时时间。取值范围:-1: 表示一直等待服务器响应,不超时;0:不等待超时,直接返回结果;n:等待n秒。默认值是10s。使用该参数后,zsql启动连接数据库时,设置等待超时时间为指定值,启动后,当前建立连接的等待响应超时时间、再次建立的新连接的等待响应超时时间以及查询超时时间均为设置值,退出zsql进程,设置失效。

  • 以普通数据库用户身份登录。

    GaussDB 100支持交互模式和非交互模式两种方式登录。

    • 交互方式登录1:
      zsql user@ip:port [-D /home/omm/data1] [-q] [-w connect_timeout] [-s "silent_file"]
      根据提示输入密码。
      Please enter password:
      交互方式登录2:
    • zsql
      conn user@ip:port [-D /home/omm/data1]

      根据提示输入密码。

      Please enter password:
      非交互方式登录1:
    • zsql user/user_password@ip:port [-D /home/omm/data1] [-q] [-w connect_timeout] [-s "silent_file"]
      非交互方式登录2:
    • zsql
      conn user/user_password@ip:port [-D /home/omm/data1]

    其中,user为数据库用户名,password为数据库用户密码。ip:port为数据库所在主机的IP地址和端口号,默认端口号为8000。

    当操作数据库系统管理员起了多个数据库实例时,连接指定的数据库时,需要使用-D参数指定数据库目录。

    -q参数用于取消SSL登录认证检查。-s参数用于设置无提示模式执行SQL。

    -w参数用于配置客户端连接数据库时的等待响应超时时间。取值范围:-1: 表示一直等待服务器响应,不超时;0:不等待超时,直接返回结果;n:等待n秒。默认值是10s。使用该参数后,zsql启动连接数据库时,设置等待超时时间为指定值,启动后,当前建立连接的等待响应超时时间、再次建立的新连接的等待响应超时时间以及查询超时时间均为设置值,退出zsql进程,设置失效。

    对于交互方式登录1和非交互方式登录的连接,如果连接失败,退出zsql进程;而交互方式登录2连接失败时,不会退出zsql进程。

操作步骤-使用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] [-w connect_timeout] [-s "silent_file"]
    根据提示输入密码。
    Please enter password:
    非交互方式登录:
  • zsql user/user_password@uds -D /home/omm/data1 [-q] [-w connect_timeout] [-s "silent_file"]
    其中,user为数据库用户名,password为数据库用户密码。uds是unix domain socket缩写,不区分大小写。

-q参数用于取消SSL登录认证检查。-s参数用于设置无提示模式执行SQL。

-w参数用于设置客户端连接数据库时的等待响应超时时间。取值范围:-1: 表示一直等待服务器响应,不超时;0:不等待超时,直接返回结果;n:等待n秒。默认值是10s。使用该参数后,zsql启动连接数据库时,设置等待超时时间为指定值,启动后,当前建立连接的等待响应超时时间、再次建立的新连接的等待响应超时时间以及查询超时时间均为设置值,退出zsql进程,设置失效。

示例

  • 用户omm本地登录数据库。
    omm@plat1~> zsql
    SQL> CONN omm@127...1:8000
    Please enter password:
    ***********
    connected.
  • 启动zsql进程时设置等待响应超时时间。
    --启动zsql进程时设置等待响应超时时间为20s。启动后,当前建立连接的等待响应超时时间为20s。
    zsql omm@127.0.0.1:8000 -w 20
    Please enter password:
    ***********
    connected.
    --创建新用户jim,并赋予新用户CREATE SESSION权限。
    DROP USER IF EXISTS jim;
    CREATE USER jim IDENTIFIED BY database_123;
    GRANT CREATE SESSION TO jim;
    --切换用户,再次建立的新连接的等待响应超时时间也是20s。
    CONN jim@127.0.0.1:8000
    Please enter password:
    ***********
    connected.
    --退出zsql进程时,设置失效,之后新建立连接的等待响应超时时间仍然是默认值10s。
    EXIT


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3142377/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 类型转换-函数
下一篇: SQL语法-RESET
请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19271