数据库连接
共 184 篇文章
MongoDB 数组范围查询匹配了没有区间内元素的文档
MongoDB 数组范围条件可能由不同元素分别满足。用查询 $elemMatch 约束同一元素,并区分文档筛选、完整数组返回及标量字段。
redis.asyncio 报 attached to a different loop
已建立异步连接属于创建循环。按应用和测试真实生命周期创建、复用并关闭,区分TestClient portal、fixture与旧teardown重复清理。
Elasticsearch 扩容后仍报 FORBIDDEN/12:先确认水位再处理写入封锁
Elasticsearch 磁盘扩容后仍无法写入时,先核对数据路径、有效 high 水位和索引写入封锁,再处理残留设置与业务积压。
Redis 写入报 MISCONF,RDB 保存提示 Permission denied
Redis 写入返回 MISCONF,日志同时显示 RDB 保存 Permission denied。核对实际数据目录、服务进程身份和权限,修正后验证后台保存真正完成,避免把关闭停写保护误当成持久化恢复。
Django 用 psycopg2 命名游标报 outside of transactions:查询与读取都要在事务内
Django 使用 psycopg2 命名游标报事务外错误时,将声明和分批读取放在同一连接的事务中;区分自动提交、事务池、流式响应与 HOLD 游标生命周期。
MySQL 旧版本 DELETE 使用表别名时报 1064
区分 MySQL 8.0.16 前后的单表 DELETE 别名语法;保留 LIMIT 时优先去别名,使用多表形式时明确删除目标及限额差异。
PostgreSQL SELECT DISTINCT 报 could not identify an equality operator for type json
普通 DISTINCT 比较所有输出列,json 缺少相等运算符。确认去重口径后在查询中生成或转换为 jsonb,并核对重复键、文本形式及转换边界。
MySQL 虚拟机 127.0.0.1 能连,localhost 报 2002:显式选择 TCP
Unix 宿主机通过端口转发连接虚拟机 MySQL,127.0.0.1 正常而 localhost 报 socket 2002 时,显式选择 TCP,核对宿主机端口与实际客户端配置。
psql 合并删库和建库命令时报事务块错误
psql 把同一个 -c 中的多条 SQL 作为一次请求执行,删库和建库会触发事务块限制。拆成独立 -c,核对维护库和外层事务,并处理删库成功后建库失败的恢复风险。
MySQL GROUP_CONCAT 结果被截断:先查实际连接的长度上限
GROUP_CONCAT 结果缺失先核会话字节上限和告警,按需求临时调整、恢复连接状态,不把视图类型或包大小混为根因。
PostgreSQL 生成列使用 to_char,报 generation expression is not immutable
日期列用to_char生成展示文本时建列失败:核对函数分类与隐式转换,把显示格式放在查询或应用中,避免盲目标记IMMUTABLE。
MySQL JDBC 报 Public Key Retrieval is not allowed:检查 TLS 和 RSA 认证
Java 连接 MySQL 8 后出现公钥获取限制,区分 TLS、固定 RSA 公钥和临时获取,保留证书校验及驱动版本条件。
BullMQ Worker 报 maxRetriesPerRequest must be null
Worker传入已有ioredis需要符合后台重试规则。单独配置消费者连接,保留HTTP生产者有界等待、错误处理和共享连接关闭顺序。
PostgreSQL 分区表只用 id 作主键,报 must include all partitioning columns
按日期分区后不能只用id建立父表主键:核对完整分区键,区分复合标识与全表唯一编号,连同外键和应用访问方式选择模型。
PostgreSQL 表名有大写字母,查询报 relation does not exist
PostgreSQL 表清单能看到大写表名,查询却报 relation does not exist:核对数据库、schema 和精确拼写,用双引号或 quote_ident 正确引用表与列。
BullMQ 提示 volatile-lru:队列能否共用缓存 Redis
BullMQ需要noeviction后端。区分启动警告与Redis命令错误,检查共享缓存的淘汰需求,并保留容量、写入失败与任务留存边界。
PostgreSQL 按时间倒序时 NULL 排在最前面
PostgreSQL 的 DESC 默认把 NULL 放在前面。使用 DESC NULLS LAST 保留空值行,同时区分各排序键、分页并列规则和索引扫描顺序。
ClickHouse JOIN 报 Double-distributed:按分片数据选择 GLOBAL 或 local
两个 Distributed 表的 JOIN 或 IN 子查询触发 Code 288,需按数据分片选择 local 或 GLOBAL,并核对结果完整性、广播成本和实际执行位置。
Redis Cluster 已 SCRIPT LOAD 仍报 NOSCRIPT:缓存不属于整个集群
集群中脚本加载与执行可能落到不同节点。传入真实 KEYS,保留源码与 NOSCRIPT 补载,区分跨槽、流水线和未知执行状态。
PostgreSQL SET DEFAULT 后加 NOT NULL,仍报 contains null values
给已有字段设置默认值不会填充旧NULL。检查历史空值和应用输入,评估业务补值、分批回填与USING重写的影响。


