尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
折腾电科金仓 Docker 部署的一晚上:角色登录失败、远程连接失败,这几个坑终于踩完了
折腾电科金仓 Docker 部署的一晚上角色登录失败、远程连接失败这几个坑终于踩完了最近测试国产数据库环境需要在一台 CentOS 云服务器上部署电科金仓 KingbaseES。原本计划很简单Docker 拉镜像 → 启动数据库 → 创建用户 → DBeaver连接。按照以前部署 PostgreSQL 的经验这种事情基本半小时搞定。但真正开始操作后才发现国产数据库和自己之前熟悉的 PostgreSQL 还是有一些区别。第一个问题就卡了很久。进入容器以后连续几个登录命令全部失败role xxx does not exist后面又遇到了新建用户权限异常、本地不用密码直接登录、外网端口无法访问等问题。中间反复查配置、改参数、重启容器最后才把整个链路跑通。这里记录一下整个过程主要是一些新手部署电科金仓时比较容易忽略的细节。1. 第一个坑kingbase 用户为什么登录不了刚开始进入容器的时候我看到系统用户名是 kingbase。按照惯性思维直接尝试ksql-Ukingbase-dtest结果role kingbase does not exist随后又试了几个网上经常出现的用户名ksql-UKingbase-dtestksql-Uroot-dtest结果还是一样。当时第一反应是是不是数据库初始化失败是不是 Docker 镜像有问题甚至重新启动了一遍容器。但是问题依旧。后来重新梳理了一遍才发现自己一开始就搞错了方向。这里其实有两个完全不同的概念Linux 用户数据库角色虽然名字看起来一样但它们没有任何自动关联关系。容器里面的kingbase只是操作系统账号。它主要负责数据目录权限数据库进程运行文件访问但是数据库里面能不能登录需要看 Kingbase 自己维护的角色。也就是说Linux存在kingbase用户不代表数据库里面一定存在kingbase角色这也是为什么前面几个命令都会提示role does not exist默认管理员不是 kingbase而是 SYSTEM继续排查后发现电科金仓初始化后的默认管理员是SYSTEM而不是很多资料里面写的kingbase使用ksql-USYSTEM-dtemplate1终于进入数据库。进入以后先查看当前角色SELECTrolnameFROMpg_roles;可以看到数据库里面真实存在的用户。这时候才发现之前一直尝试登录的几个用户名数据库里根本没有。这个地方其实挺容易误导。很多 PostgreSQL 教程里面默认postgres用户。但是到了 KingbaseES默认管理员和配置方式都有自己的调整。如果完全照搬 PostgreSQL 文档很容易第一步就卡住。创建业务用户时又遇到一个奇怪问题进入数据库以后我准备创建自己的业务账号。例如CREATEUSERzhuyhWITHPASSWORDxxxxxx;执行成功CREATE ROLE看起来没问题。然后准备给它超级权限ALTERROLE zhuyhWITHSUPERUSER;结果ERROR: role zhuyh does not exist这就比较奇怪了。因为刚刚明明创建成功。于是继续检查SELECTrolnameFROMpg_rolesWHERErolnamezhuyh;结果能查到zhuyh但是 ALTER 又失败。当时有点懵。一个用户查得到。但是改不了。后面定位到两个原因第一个是事务问题。在交互式 ksql 环境里面如果之前执行过一些操作没有及时提交事务新创建的角色状态可能没有完全落盘。所以创建以后建议COMMIT;再继续执行后续权限修改。第二个原因和版本有关。部分 KingbaseES 版本在角色目录同步方面存在异常情况pg_roles能看到角色记录。但是权限认证相关目录没有同步完成。于是出现用户存在但是 ALTER 失败这种比较迷惑的问题。后来换了一种更稳的创建方式与其先创建用户再修改权限不如一次性创建完成。直接DROPROLEIFEXISTSzhuyh;CREATEROLE zhuyhWITHLOGIN PASSWORDxxxxxxSUPERUSER CREATEDB CREATEROLE;创建完成以后检查SELECTrolname,rolsuperFROMpg_rolesWHERErolnamezhuyh;看到zhuyh | true才算真正完成。这个过程中最大的感受就是数据库用户权限这块不要完全按照 MySQL 或 PostgreSQL 的习惯操作。尤其国产数据库虽然兼容 PostgreSQL但是一些初始化细节还是有差异。
RELATED

相关推荐

SpringBoot启动参数全解析:从JVM调优到K8s部署实战

SpringBoot启动参数全解析:从JVM调优到K8s部署实战

1. 项目概述:启动参数,SpringBoot应用的“启动开关”搞SpringBoot开发的朋友,对java -jar这个命令肯定不陌生。但你是否想过,每次启动应用时,除了指定一个JAR包,还能做些什么?这就是启动参数的世…

📅 2026/10/7 20:05:54
OCR+智能体+低代码:电商发票批量录入自动化实战方案

OCR+智能体+低代码:电商发票批量录入自动化实战方案

1. 从手动录入到智能处理:一个电商财务的日常痛点每天下午四点,是我们电商财务小张最头疼的时候。快递员准时送来一摞厚厚的发票,从顺丰、京东到各种小物流公司,票面五花八门,金额从几十到上万不等。他的任务是在下班前…

📅 2026/9/16 7:41:22
ADRF5049BCCZN,9kHz~45GHz 超宽带 SOI 非反射 SP4T 开关

ADRF5049BCCZN,9kHz~45GHz 超宽带 SOI 非反射 SP4T 开关

简介ADRF5049BCCZN是一款采用 SOI 绝缘硅工艺打造的非反射式 SP4T 单刀四掷射频开关,工作频段覆盖 9kHz 至 45GHz,兼顾低频信号与毫米波应用,是多频段射频系统的核心切换器件。该器件核心优势源于非反射架构,未选中通道内置 50Ω …

📅 2026/10/3 10:04:00
MORE NEWS

更多资讯

📰

R语言钻石价格分析:从数据清洗到回归建模实战

简介:这是一个基于R语言的钻石价格回归分析实战案例,适合数据分析、统计建模和机器学习入门者,目标是厘清影响钻石价格的关键因素并构建预测模型。案例依托ggplot2内置diamonds数据集,覆盖数据概览、缺失与重复值检查、异常值剔除…

📰

YOLOv8实时目标检测与屏幕坐标映射:Python自瞄系统实战

简介:这是一份基于YOLOv8实现的AI自瞄项目Python源码与文档说明,面向计算机、人工智能、自动化等专业的学生与开发者,可用于毕业设计、课程设计、项目立项演示或自学进阶。项目支持YOLOv5、YOLOv8乃至最新YOLOv9模型,可自行训练并…

📰

JVM内存监控与OOM排查实战:从命令到告警体系

你有没有经历过这样的时刻:线上服务突然 CPU 拉满,接口陆续超时,打开监控面板一看,堆内存已经爬到了顶,Full GC 的频率几乎每秒一次。你翻出命令手册想看一眼内存分布,却又不敢贸然执行,生怕 jm…

📰

kenlm.zip预编译包避坑指南:从训练到部署的语言模型实践

简介:一份预编译的KenLM语言模型工具包,专注于解决NLP、语音识别或文本完成场景中统计语言模型的部署难题,开发者解压后即可直接调用,无需自行编译源码或配置C依赖。KenLM以高效的四元n-gram建模为核心,支持在线学习、…

📰

MySQL学习笔记 03、MySQL存储引擎

文章目录 前言 一、介绍存储引擎 1.1、InnoDB引擎 1.2、MyISAM引擎 二、InnoDB与MyISAM的对比 三、不同的场景选择引擎 前言 本文是付费专栏 《Java后端开发从入门到进阶》 的配套文章,所属阶段与专题为「阶段二:数据库与缓存 / 2.1 MySQL」。 专栏介绍:适合 Java 初学者及…

📰

自动侧推定位机构中的接近开关:让工件靠边更准确

自动侧推定位机构常用于装配前校正、检测前靠边、输送线转位和小型工件姿态调整。工件从输送线进入定位区后,通常需要由侧推板或气缸将其推向基准面。如果侧推距离不足,工件可能没有真正贴紧定位边;如果回位不完整,又会影响下一个…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬