Lindorm-cli是Lindorm提供的简易命令行工具,用于连接和管理Lindorm数据库。您可以通过Lindorm-cli完成基本的SQL操作,例如建表、数据查询、数据写入和导出等。本文介绍通过Lindorm-cli连接并使用云原生多模数据库 Lindorm宽表引擎的方法。
前提条件
我们定义运行 lindorm-cli 的环境为客户端环境。在实际运行 lindorm-cli 访问 Lindorm 宽表引擎前,必须确认以下内容:
已将客户端IP地址添加至Lindorm 的白名单,具体操作请参见设置白名单。
客户端环境与 Lindorm 之间的网络类型是哪种。
lindorm-cli 连接宽表引擎可使用的网络类型如下:
网络类型
说明
专有网络VPC(推荐)
专有网络VPC(Virtual Private Cloud)是您自己的云上私有网络,不同的专有网络之间二层逻辑隔离,具有较高的安全性。Lindorm-cli部署在ECS实例上时,通过专有网络连接至Lindorm宽表,可获得更高的安全性和更低的网络延迟。
公网
公网即互联网,当本地设备需要测试或管理Lindorm宽表时,可在本地设备上部署Lindorm-cli,然后通过公网连接至Lindorm宽表。
说明通过公网连接不会产生流量费用,但存在一定的安全风险,推荐通过专有网络连接以获取更高的安全性。
公网地址需要在控制台开通。如何开通,请参见操作步骤。
安装方法
根据您的操作系统,下载对应的Lindorm-cli安装包,下载链接如下表所示。
说明下表中SHA256校验和可用于验证下载的Lindorm-cli安装包的完整性和真实性。
操作系统
下载链接
SHA256校验和
Linux
命令直接下载:
wget https://tsdbtools.oss-cn-hangzhou.aliyuncs.com/lindorm-cli-linux-latest.tar.gz0f4ccaf214b41fdf8d3dd5f0ed4f92f1d5e6b0a11da3d217c9df6d382f0080df
Linux-arm64
命令直接下载:
wget https://tsdbtools.oss-cn-hangzhou.aliyuncs.com/lindorm-cli-linux-arm64-latest.tar.gz1bfb992853a26c703b2d9e2bd50e4d7e31f88992bcb7e70ac30331f5998c269e
Mac(Intel芯片)
af8a78bfe8ef53d1df25df99b5803ef3f55da7e943d730a1a6d44cd918f28842
Mac(Arm芯片)
5bdc8600055432a9275a0d52e5d26e6c2cfc7a553961c09681d0388a5a5e9a62
Windows
7721748744edc551d43fec6bb19ab40eb514bb6043a3d21afa38f353833259ce
解压Lindorm-cli压缩包。
在不同的操作系统上,使用该操作系统解压缩包的常用方法解开先前所下载的压缩包。
以Linux操作系统为例,执行以下命令解压。解压后可得到
lindorm-cli文件。它是一个可执行文件,无需额外安装操作即可在 Shell 终端中直接执行。tar zxvf lindorm-cli-linux-latest.tar.gz
连接方法
lindorm-cli 同时支持以 MySQL 协议或者 Avatica 协议连接 Lindorm 宽表引擎,优先推荐使用 MySQL 协议来连接宽表引擎。
仅2.0.0以上版本的lindorm-cli支持通过MySQL协议连接宽表引擎。
通过MySQL协议连接宽表引擎(推荐)
客户端部署在Linux或Mac系统
跳转至
Lindorm-cli所在目录。cd <Lindorm-cli所在目录>执行以下语句连接宽表引擎。
./lindorm-cli -url <mysql url> -username <用户名> -password <密码>参数说明
参数
说明
mysql url
用户名
连接Lindorm宽表引擎的用户名。
密码
连接Lindorm宽表引擎的密码。
重要如果忘记密码,可以通过Lindorm宽表引擎的集群管理系统修改用户密码。
修改密码后,请通过控制台重启引擎。
连接配置说明
支持的连接配置
说明
mysql://协议头支持在mysql url前添加
mysql://协议头。例如:
mysql://ld-8vbn68478unu8****-proxy-sql-lindorm.lindorm.rds.aliyuncs.com:33060。服务端自定义连接参数
您可以在mysql url后设置服务端自定义连接参数,格式为
key1=value1&key2=value2。目前支持的参数如下:
operationTimeout:表示查询超时时间。格式为
<mysql url>?operationTimeout=<超时时间>,其中超时时间单位为毫秒(ms)。例如:ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060?operationTimeout=120000。连接示例
./lindorm-cli -url ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060 -username user -password test --添加mysql://协议头连接 ./lindorm-cli -url mysql://ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060 -username user -password test --指定查询超时时间 ./lindorm-cli -url mysql://ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060?operationTimeout=120000 -username user -password test连接成功将返回以下结果:
lindorm-cli version: 2.0.x其中,
2.0.x为Lindorm-cli的版本号。
客户端部署在Windows系统
方法一
打开命令提示符(CMD),跳转至
lindorm-cli.exe的所在目录下。cd <lindorm-cli.exe所在目录>在CMD上执行以下语句连接宽表引擎。
lindorm-cli -url <mysql url> -username <用户名> -password <密码>参数说明
参数
示例值
获取方法
mysql url
ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060
用户名
user
连接Lindorm宽表引擎的用户名。
密码
test
连接Lindorm宽表引擎的密码。
重要如果忘记密码,可以通过Lindorm宽表引擎的集群管理系统修改用户密码。
修改密码后,请通过控制台重启引擎。
连接配置说明
支持的连接配置
说明
mysql://协议头支持在mysql url前添加
mysql://协议头。例如:
mysql://ld-8vbn68478unu8****-proxy-sql-lindorm.lindorm.rds.aliyuncs.com:33060。服务端自定义连接参数
您可以在mysql url后设置服务端自定义连接参数,格式为
key1=value1&key2=value2。目前支持的参数如下:
operationTimeout:表示查询超时时间。格式为
<mysql url>?operationTimeout=<超时时间>,其中超时时间单位为毫秒(ms)。例如:ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060?operationTimeout=120000。连接示例
lindorm-cli -url ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060 -username user -password test --添加mysql://协议头连接 lindorm-cli -url mysql://ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060 -username user -password test --指定查询超时时间 lindorm-cli -url mysql://ld-bp187uwcx5f40****-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060?operationTimeout=120000 -username user -password test连接成功将返回如下结果:
Connected to ld-bp187uwcx5f40****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com:33060 lindorm-cli version: 2.0.x其中,
2.0.x为Lindorm-cli的版本号。
方法二
双击打开Lindorm-cli.exe程序,执行以下语句:
connect <mysql url> <用户名> <密码>连接示例
connect ld-bp13y790c91f4****-proxy-lindorm-pub.lindorm.aliyuncs.com:33060 user test连接成功无结果返回。
通过Avatica协议连接宽表引擎
客户端部署在Linux或Mac系统
跳转至
Lindorm-cli所在目录。cd <Lindorm-cli所在目录>执行以下语句连接宽表引擎。
./lindorm-cli -url <url> -username <用户名> -password <密码>参数说明
参数
示例值
获取方法
jdbc url
jdbc:lindorm:table:url=http://ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060
Lindorm宽表引擎的宽表SQL地址。
用户名
user
连接Lindorm宽表引擎的用户名。
密码
test
连接Lindorm宽表引擎的密码。
重要如果忘记密码,可以通过Lindorm宽表引擎的集群管理系统修改用户密码。
修改密码后,请通过控制台重启引擎。
连接示例
./lindorm-cli -url jdbc:lindorm:table:url=http://ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060 -username user -password test连接成功将返回以下结果:
lindorm-cli version: 2.0.xx其中,
2.0.xx为Lindorm-cli的版本号。
客户端部署在Windows系统
方法一
打开命令提示符(CMD),跳转至
lindorm-cli.exe的所在目录下。cd <lindorm-cli.exe所在目录>在CMD上执行以下语句连接宽表引擎。
lindorm-cli -url <jdbc url> -username <用户名> -password <密码>参数说明
参数
示例值
获取方法
jdbc url
jdbc:lindorm:table:url=http://ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060
Lindorm宽表引擎的宽表SQL地址。
用户名
user
连接Lindorm宽表引擎的用户名。
密码
test
连接Lindorm宽表引擎的密码。
重要如果忘记密码,可以通过Lindorm宽表引擎的集群管理系统修改用户密码。
修改密码后,请通过控制台重启引擎。
连接示例
lindorm-cli -url jdbc:lindorm:table:url=http://ld-bp13y790c91f4****-proxy-lindorm-pub.lindorm.aliyuncs.com:30060 -username user -password test连接成功将返回如下结果:
Connected to jdbc:lindorm:table:url=http://ld-bp13y790c91f4****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060 lindorm-cli version: 2.0.xx其中,
2.0.xx为Lindorm-cli的版本号。
方法二
双击打开Lindorm-cli.exe程序,执行以下语句:
connect <jdbc url> <用户名> <密码>连接示例
connect jdbc:lindorm:table:url=http://ld-bp13y790c91f4****-proxy-lindorm-pub.lindorm.aliyuncs.com:30060 user test连接成功无结果返回。
使用方法
lindorm-cli 同时支持以“交互式”及“非交互式”的模式来执行 SQL 访问宽表引擎。
交互式模式下执行 SQL 的方法
大多数情况下我们都是以交互式模式启动 lindorm-cli 并操作宽表引擎。它的执行流程如下:
启动 lindorm-cli
比如通过上一章节【连接方法】中的任一协议连接到 Lindorm 宽表引擎后,客户的终端便会进入 lindorm-cli 的交互界面,并等待用户输入进一步的命令。
说明在 Windows 下直接双击 lindorm-cli.exe 后,Windows 会弹出一个 cmd 终端界面。此时实际上是先启动了 lindorm-cli 的交互式界面,但尚未建立起与 Lindorm 宽表引擎的连接。此时需要通过 connect 子命令建立连接后才能执行后续的 SQL。详见上文的客户端部署在Windows系统中的方法二。
输入 SQL 语句访问宽表引擎
lindorm-cli 建立好连接进入交互式界面后,用户便可以输入 SQL 访问宽表引擎。以下便是在交互模式下依次执行建库、建表、写入、查询语句操作宽表引擎的效果。
说明宽表引擎支持的 SQL 语句可查阅SQL参考。
退出 lindorm-cli
在 lindorm-cli 的交互式界面中执行完所要操作的语句后,通过exit子命令或者ctrl+d快捷键退出 lindorm-cli。
在交互式模式下启动 lindorm-cli 并成功连接宽表引擎后,直到退出该模式前,客户端与宽表引擎始终维持一个连接会话。此期间所有 SQL 操作均在同一会话中执行(但需注意:若会话长时间无操作,系统会自动断开连接以回收资源)。
非交互式模式下执行 SQL 的方法
在编写运维脚本时,若需直接执行Lindorm SQL语句而不进入交互式命令行,可使用lindorm-cli的非交互模式操作宽表引擎。该模式通过命令参数直接运行SQL并返回结果,适用于自动化任务场景,如执行查询或统计操作。
要在 Shell 终端中通过 lindorm-cli 非交互模式执行 SQL 语句,请基于连接方法中的连接参数(如主机地址、端口等),追加 -execute 参数后接单引号或双引号包裹的 SQL 语句,即可快速建立短连接并执行命令。例如:
lindorm-cli -url mysql://ld-xxxxxx-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060 -username user -password XXXX -execute "CREATE TABLE tb (id VARCHAR, name VARCHAR, address VARCHAR, PRIMARY KEY(id, name));"
此外,若要导出宽表查询结果至CSV文件,也可通过非交互模式直接执行导出。
导出CSV文件功能需使用 lindorm-cli 2.2.0 或更高版本。查看当前版本方法:
命令行直接查询:执行
lindorm-cli -version获取版本号交互模式启动提示:进入交互界面时,初始欢迎信息会显示版本号。
lindorm-cli -url mysql://ld-xxxxxx-proxy-lindorm-vpc.lindorm.aliyuncs.com:33060 -username user -password XXXX -format csv -output ~/result.csv -execute "SELECT * FROM tb;"短连接机制:在非交互模式下执行每条 SQL 语句时,lindorm-cli 会独立建立连接并在执行结束后立即关闭。
输出控制:执行结果默认输出至终端屏幕(stdout);如需指定重定向的文件路径,请使用
-output参数。
命令行参数与子命令
命令行参数
在终端启动 lindorm-cli 的同时,支持同时指定以下命令行参数:
参数名 | 是否需跟参数值 | 参数值 | 详细说明 |
url | 是 | 协议名+ lindorm 宽表引擎的 SQL 连接串(含端口) | 用于指定 lindorm-cli 连接宽表引擎时所用的协议以及对应的连接串信息。 |
username | 是 | 连接所用的用户名 | 指定的用户名必须是在宽表引擎中事先已经创建好的 Lindorm 用户。 |
password | 是 | 用户名对应的密码 | - |
database | 是 | 连接的数据库名 | 默认不指定时连接的是 default 库。如果指定的话,必须要是宽表引擎中已经事先创建好的 database。 |
execute | 是 | 要执行的 SQL 语句 | 指定 execute 参数后,lindorm-cli 将以非交互式模式运行。参数值中指定的 SQL 语句需要用双引号或单引号包裹。 说明 在用双引号引用 SQL 语句时,SQL 中自身的双引号可通过反斜杠 |
output | 是 | 非交互模式下,SQL 执行结果的输出位置 | 在非交互模式下,output 默认不指定时,SQL 执行结果将被直接输出到标准输出。指定了 output 时,SQL 执行结果将会输出到指定路径下的指定文件;若文件不存在,还会尝试创建文件。 |
format | 是 | 以下几种之一: horizontal, vertical, csv, json, column | 改变宽表引擎服务端返回的 SQL 执行结果的格式,默认不指定时实际是 column。
|
pretty | 否 | - | 需要与 format 为 JSON 时一并使用。 打开 pretty 开关时,服务端返回的信息将按 Pretty-printed JSON 的形式输出;默认不指定时,将按压缩形态的 JSON 输出。 |
csvNoHeader | 否 | - | 需要与 format 为 CSV 时一并使用。 打开 csvNoHeader 开关时,服务端返回的信息以 CSV 形式输出,不会带上结果集的表头信息(列名)。 |
nullString | 是 | 用于替代 NULL 的字符串 | 需要与 format 为 CSV 时一并使用。 指定 nullString 时,服务端返回的查询结果中包含的 NULL 值将会被指定的字符串替换。 默认不指定nullString 的时候,服务端返回的查询结果中包含的 NULL 值将默认按以下形式输出:
|
version | 否 | - | 显示 lindorm-cli 的版本信息,此时 lindorm-cli 并不会真正被启动,也不会进入 lindorm-cli 的交互模式。 |
lindorm-cli 的命令行参数都需要通过短横线 -来指定。
常用子命令
当以交互式模式启动了 lindorm-cli 工具后,除了指示 lindorm-cli向 Lindorm 宽表引擎发送 SQL之外,还可以在交互式界面中输入执行一些 lindorm-cli 自身的子命令来控制 lindorm-cli 的行为。常用的子命令如下所示:
子命令 | 命令参数 | 说明 |
connect | <url> <username> <password> | 当 lindorm-cli 只是单纯被启动并进入交互模式时,可以通过 connect 子命令建立起与 Lindorm 宽表引擎的连接。 url, username, password 三个字段的含义同命令行参数的 |
format | 以下种类之一: horizontal, vertical, csv, json | 含义同参数 |
help | 无 | 查看常用子命令集合。 |
history | 无 | 查看最近执行的SQL 或子命令。 |
exit 或 quit | 无 | 退出 lindorm-cli,断开与 Lindorm 宽表引擎的连接。 |
常见问题
为什么会连接超时或失败?
连接超时或失败时会报错Failed to connect to <宽表连接地址> connection check failed或connection timeout。
可能存在的原因具体如下,请您依次排查:
原因 | 解决方案 |
使用公网连接,但未将公网IP地址添加至白名单中。 | 将客户端公网IP地址添加至Lindorm白名单。 查询客户端公网IP地址的方式:在Windows命令提示符(CMD)中输入 |
已将公网地址添加至白名单,仍旧连接超时。 | 可能存在网络环境不稳定等因素,建议您更换为专有网络连接。 |
使用ECS访问,未将ECS的IP地址添加至Lindorm白名单。 | |
未使用正确的连接地址。 | Lindorm连接地址区分专有网络地址和公网地址,请根据网络环境使用正确的连接地址。 |
如果以上方案仍无法解决您的问题,请联系Lindorm技术支持(钉钉号:s0s3eg3)。
相关文档
关于Lindorm宽表SQL的语法使用说明:SQL参考。
其他连接方式:通过MySQL命令行连接并使用宽表引擎、使用MySQL协议(推荐)。