Skip to content

交互终端概述

Datalayers CLI 交互终端(dlsql)是与 Datalayers 数据库交互的命令行工具,支持 SQL(兼容 MySQL 方言)与 PRQL 两种交互语言,默认使用 SQL。该工具已包含在 Datalayers 镜像和安装包中,可用于 SQL 执行与系统管理。

Datalayers CLI 支持两种连接认证方式,用户可根据实际场景选择。

交互语言

dlsql 默认使用 SQL 语言(MySQL 方言)进行交互,同时支持 PRQL,可在 dlsql 交互式终端内通过 set dialect = prql 指定,将交互语言指定为 PRQL;如需切换回 SQL,则执行 set dialect = sql 即可。

sql
# 使用 prql 作为查询语言
> set dialect = prql

# 使用 SQL 作为查询语言
> set dialect = sql

注:该查询语言切换目前为客户端行为,因此暂时仅支持在 dlsql 中使用。

连接认证方式

账号密码认证

适用于远程或本地 TCP/IP 连接,提供灵活的身份验证。在终端中执行以下命令进入交互式界面:

shell
dlsql -h 127.0.0.1 -u admin -p public -P 8360

Peer 认证

Linux 的 Peer 认证(Peer Credentials Authentication)是基于内核级别的进程身份验证机制,通过 Unix Domain Socket 通信为连接方提供可靠的身份验证。

Datalayers 集成 Peer 认证能力,为数据库账号管理提供安全便捷的解决方案,通过 Peer 认证的连接,将获得系统最高权限。使用 Peer 认证需依赖 Unix Socket 服务,因此需确保该服务已启用,如下:

toml
# The configurations of the unix domain socket server.
[server.uds]
# The path of the unix domain socket, relative to `base_dir`.
# Do not configure this option if you do not want UDS server support.
# Recommend: "run/datalayers.sock"
path = "run/datalayers.sock"

通过以下命令即可进入交互终端:

shell
# 以 deb/rpm 安装场景为例
sudo -u datalayers dlsql

Peer 认证注意事项

  • 仅限本地访问:Peer 认证仅支持通过 Unix Socket 的本地连接
  • 连接端账号必须满足以下条件之一:具备超级管理员权限,或用户 UID 与数据库服务运行时的 UID 完全一致
  • 通过 Peer 认证建立的连接将获得系统级最高权限
  • 配置 Unix Socket 服务后,需重启 Datalayers,以确保服务生效

Web 控制台

dlsql 内置 Web 控制台,提供可视化操作界面。

启动命令如下:

shell
dlsql --web-console 9362

启动后,通过 http://<服务器地址>:9362 即可访问 Web 控制台,账号与密码为数据库对应的账号与密码。

连接参数详解

参数简写描述
--host-h设置连接 Datalayers 服务器地址, 默认为本地路径通过 Unix Socket 方式连接: /var/lib/datalayers/run/datalayers.sock
--username-u设置连接 Datalayers 使用的用户名
--password-p设置连接 Datalayers 使用的密码
--port-P设置连接 Datalayers 的端口
--database-d设置连接 Datalayers 时使用的数据库
--execute-e运行一次 SQL STATEMENT 后退出
--load-file-执行指定的 SQL 脚本文件
--web-console-指定 Web 控制台的监听端口并启动 Web 控制台
--version-V显示 CLI 工具的版本
--tls-通过 TLS 加密方式与数据库进行交互。自签证书则需指定 root ca,如:--tls /etc/datalayers/datalayers.crt
--max-display-rows-在使用 dlsql 查询数据时最多显示多少条记录,缺省值为:40,如需显示更多记录,则需通过该参数进行指定(0 表示无限制)
--help-show this help, then exit

相关文档