从命令行进行连接
可以在多个客户端平台上使用 vsql 从命令行连接到数据库。
如果由于任何原因无法建立连接(例如您没有足够的权限或者服务器未在目标主机上运行),则 vsql 会返回错误并终止。
语法
/opt/vertica/bin/vsql [-h host] [ -p port ] [ option...] [ dbname [ username ] ]
参数
- host
- 如果要连接到本地服务器,则此参数是可选的。可以提供 IPv4 或 IPv6 IP 地址,或者也可以提供主机名。
如果 Vertica 服务器同时使用 IPv4 和 IPv6 地址,并且您提供了主机名而非 IP 地址,则当 DNS 已配置为同时提供 IPv4 和 IPv6 地址时,您可以选择将 IPv4 地址与
-4
选项结合使用,还可以选择将 IPv6 地址与-6
选项结合使用。如果您使用 IPv6 并提供 IP 地址,则必须在地址后面附加%interface name
。 - port
- 数据库服务器端口。
默认值: 5433
- 选项
- 一个或多个 vsql 命令行选项。
如果数据库受密码保护,则您必须指定 -w 或
--password
命令行选项。 -
dbname
- 目标数据库的名称。如果未指定,vsql 会自动连接到指定的 host 和 port 上的数据库。
注意
在 12.0.1 之前的 vsql 版本中,此参数的默认值是您的系统用户名。如果您尝试使用 vsql 12.0.0 或更早版本连接到 Vertica 12.0.1+ 数据库而不指定数据库名称,vsql 将返回以下错误:
Database <span class="code-variable">system_username</span> does not exist.
要避免此问题,请指定 dbname 或升级到 vsql 12.0.1+。
-
username
- 数据库用户名,默认情况下是您的系统用户名。
退出代码
vsql 在正常终止时返回 0 给 shell。否则,它返回以下值之一:
-
1:发生严重错误 — 例如,内存不足或找不到文件
-
2:与服务器的连接不正常,并且会话未进行交互
-
3:脚本中发生了错误,并且设置了变量
ON_ERROR_STOP
-
命令行中无法识别的单词可能会解释为数据库名称或用户名。
示例
以下示例显示如何通过将 vsql 输出重定向到输出文件 retail_queries.out
来捕获错误消息:
$ vsql --echo-all < retail_queries.sql > retail_queries.out 2>&1