)
适用环境麒麟 V10 金仓数据库 KingbaseES V8目标通过ksql终端完成数据库的增、删、改、查基本操作前言很多初次接触金仓数据库的朋友在麒麟操作系统上常常卡在“怎么连接”“怎么执行SQL”这些基础步骤上。本文基于真实项目中的操作记录整理了一套完整的入门实践从防火墙放行、用户切换到连接数据库再到增删改查逐一手把手演示。所有命令均已在实际环境中验证放心跟着做即可。1. 环境准备防火墙 用户1.1. 放行数据库端口金仓数据库默认端口为54321如果服务器开启了防火墙需要先放行该端口sudofirewall-cmd--permanent--add-port54321/tcpsudofirewall-cmd--reloadsudofirewall-cmd --list-ports# 确认已生效1.2. 切换到数据库管理员用户金仓的ksql客户端命令通常只对kingbase用户或 root 用户可用但推荐切换到kingbase用户进行操作sudo-i# 切换至 rootsu- kingbase# 再切换至 kingbase 专属用户⚠️注意若直接在普通用户下执行ksql可能报错command not found因为环境变量未加载。2. 连接数据库ksql 登录2.1. 基本连接语法ksql-h主机IP-p端口-U用户名-d数据库名例如使用ahxny用户连接ahxny数据库ksql-h10.235.58.128-p54321-Uahxny-dahxny2.2. 本地免密登录已切换至 kingbase 用户如果只在本机操作且当前用户为kingbase可以直接简写ksql-Usystem-p54321# 使用 system 用户ksql-Uahxny-p54321# 使用普通业务用户若省略-d默认连接到与用户名同名的数据库如ahxny默认连接ahxny库。2.3. 测试连通性在连接之前可以用telnet测试端口是否可达telnet10.235.58.128543213. 数据库与表的基本查看登录成功后会进入ksql交互界面提示符为数据库名或数据库名#。3.1. 查看所有数据库\l输出示例节选Name | Owner | Encoding --------------------------------------------------- ahxny | ahxny | UTF8 tianyuan_multistation_dazhong | ahxny | UTF8 ...3.2. 切换数据库\c 数据库名例如\c tianyuan_multistation_dazhong3.3. 查看当前数据库的所有表\dt3.4. 查看表结构\d 表名例如\d sys_estimateelectricity4. 增删改查CRUD实战接下来我们以forecast_pvarray表为例演示完整的增删改查操作。4.1. 查询SELECT查询全部数据SELECT*FROMforecast_pvarray;条件查询SELECTid,pdc0,pvsysFROMforecast_pvarrayWHEREpvsys2;统计行数SELECTCOUNT(*)FROMforecast_pvarray;4.2. 插入INSERT日志未直接给出插入示例但这里补充标准语法INSERTINTOforecast_pvarray(id,creatorid,createtime,deleted,pdc0,gamma_pdc,temp_ref,surface_tilt,surface_azimuth,pvsys,enterpriseid)VALUES(4,Amin,now(),f,60000,-0.0034,25.0,2.06,180.0,3,32a6060f); 提示now()函数获取当前时间戳。4.3. 更新UPDATE根据日志我们将所有记录的enterpriseid更新为指定的企业IDUPDATEforecast_pvarraySETenterpriseid32a6060f;也可以带条件更新UPDATEforecast_pvarraySETpdc050000WHEREid1;更新后再次查询验证SELECT*FROMforecast_pvarray;4.4. 删除DELETE删除表中所有数据谨慎操作DELETEFROMsys_weathergrid24hours;删除后立即查看行数确认已清空SELECTCOUNT(*)FROMsys_weathergrid24hours;-- 返回 0若只删除部分数据加上WHERE条件DELETEFROMforecast_pvarrayWHEREpvsys3;5. 提交事务COMMIT金仓默认是自动提交模式每条SQL执行后自动提交但如果显式开启了事务需要手动提交。若出现WARNING: there is no transaction in progress则表示当前没有事务无需提交。COMMIT;6. 常见错误与避坑指南错误1ksql: command not found原因未切换到kingbase用户或环境变量未设置。解决执行su - kingbase切换到金仓专用用户。错误2在ksql提示符下又输入ksql ...示例ahxny ksql -U tianyuan -p 54321原因已经把ksql当成了 SQL 语句执行。解决ksql是外部命令只能在操作系统 shell 中执行进入ksql交互界面后只能输入 SQL 或元命令以\开头。错误3表名或字段名大小写问题金仓基于 PostgreSQL默认对未加双引号的对象名会转为小写。若建表时使用了双引号保留了大写则查询时也必须加双引号。建议统一使用小写命名。7. 扩展小技巧7.1. 查看当前连接信息\conninfo7.2. 修改用户密码管理员操作ALTERUSERahxny ENCRYPTED PASSWORD新密码;7.3. 创建数据库管理员操作CREATEDATABASEtianyuan_base_dazhong;7.4. 给表添加注释便于维护COMMENTONCOLUMNforecast_pvarray.enterpriseidIS企业Id;8. 总结通过本文您已经掌握了在麒麟环境下使用金仓数据库ksql终端进行基本操作的完整流程✅ 防火墙配置与用户切换✅ 多种方式的连接登录✅ 查看数据库、表结构✅ SELECT、INSERT、UPDATE、DELETE 增删改查✅ 常见错误处理金仓数据库的ksql与 PostgreSQL 的psql高度相似熟悉之后可以平滑迁移。建议将常用命令整理成笔记多加练习就能快速上手。祝您使用顺利如有疑问欢迎留言交流。