数据库连接
共 184 篇文章
Redis 连接报 NOAUTH 或 WRONGPASS
Redis 客户端报 NOAUTH 或 WRONGPASS 时,检查认证参数、实际加载的配置与 ACL 用户状态;若认证通过后出现 NOPERM,再核对命令和键权限。
MariaDB 本机 root 报 Access denied,sudo 却能登录:检查 unix_socket
本机 MariaDB root 密码登录失败而 sudo 登录成功时,查看完整认证定义;保留管理入口,给应用建立限定权限账号,并区分 socket 与 TCP。
MySQL 改了容器密码仍 Access denied:先看已有数据卷
容器环境变量变化不等于已有数据库账号密码变化。先确认数据目录和账号匹配,再选择受控改密,保留数据与恢复路径。
SQLite group_concat 去重并指定分隔符时报单参数错误
SQLite 的 group_concat 同时使用 DISTINCT 和自定义分隔符时报错。先按分组键和值去重,再执行双参数聚合,避免替换结果中的逗号破坏原始内容。
PostgreSQL LEFT JOIN 统计时零记录组织不显示
右表筛选条件放在 WHERE 会过滤 LEFT JOIN 补出的空行。将计数范围移入 ON,保留无匹配组织,并用非空主键计数验证零记录结果。
pandas 1.5 升级 SQLAlchemy 2 后读库报 ObjectNotExecutableError
pandas 1.5 与 SQLAlchemy 2 组合读取数据库报不可执行对象,核对堆栈,用 Connection 和 text 参数绑定修复,并区分当前版本支持情况。
PostgreSQL 连接数耗尽:连接池只有 10,为什么仍报 too many clients
连接池 max 只约束一个池。统计数据库全局连接,计算应用实例的连接预算,检查长事务及连接是否归还,再决定怎样调整容量。
MongoDB 加上业务库名后 Authentication failed:核对 authSource
同一 MongoDB 账号不带库名可连接,指定业务库后认证失败,检查认证库、用户所属库与角色,避免删除数据卷或一律改成 admin。
PostgreSQL 物化视图有索引,仍报 cannot refresh concurrently
PostgreSQL 并发刷新物化视图需要合格的唯一索引,已有 GIN 搜索索引并不够。核对索引有效性、行粒度和填充状态,再安排建索引与刷新,避免用删除数据或重置视图绕过错误。
PostgreSQL 允许空值的状态列写入 NULL 仍报 CHECK 冲突
区分 SQL 空值与字符串 NULL,核对参数类型及导入标记,在保留 CHECK 约束的前提下修正输入。
SQLite 查询后写入报 database is locked:检查未关闭的 DataReader
连接和 command 已关闭仍可能有读取路径未结束;检查 reader、显式事务及外部编辑,区分忙等待和 WAL 的能力边界。
PostgreSQL 在 SET 左侧使用表别名,报 column does not exist
PostgreSQL UPDATE 的赋值目标不能带表别名前缀。删除 SET 左侧的限定,保留右侧表达式和 WHERE 中的别名,并区分复合字段路径与普通列。
MongoDB C# 更新报 immutable field _id:查询投影不会禁止写入 ID
C# 查询排除 _id 后仍可能通过反射 Set 写入映射属性。核对最终更新定义,用允许更新的字段构造请求,并保留目标 ID。
MongoDB find 能读 secondary,db.command 却报 not primary:显式传递 readPreference
MongoDB Node 驱动连接 secondary 后,普通查询正常但 db.command 报 not primary 时,把 readPreference 放进第二参数,保留命令支持、权限和复制一致性条件。
SQLite 批量清理报 too many SQL variables:检查单条语句的参数上限
SQLite 清理积压数据时单条 IN 查询参数过多,读取实际连接限制,按参数预算和业务语义设计批次,保留删除、并发和恢复要求。
Redis GETSET 更新值后 TTL 变成 -1
GETSET 会清除键原有过期时间。按 Redis 版本选择 SET KEEPTTL 或 GET KEEPTTL,保留截止时间,并处理键已消失和无有效期的分支。
PostgreSQL 用 WHERE 列 = MAX(列) 筛选时报聚合函数错误
PostgreSQL 用 WHERE 列 = MAX(列) 筛选时会报聚合函数位置错误。通过独立子查询取得最大编号,明确全局期次与符合条件期次的区别,避免直接改成 HAVING 后仍选错数据。
SQLite 建表报 AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY
SQLite 的 BIGINT 主键不能直接使用 AUTOINCREMENT。核对生成 SQL 的精确类型名,区分自动编号与不复用编号,并处理 ORM 映射和已有表迁移。
Redis 单个 HGETALL 正常,遍历 scan_iter 却报 WRONGTYPE:检查混合类型
redis-py 单个 Hash 能读,遍历 scan_iter 却报 WRONGTYPE,按实际数据类型过滤,区分 bytes 键误转 str 与不存在的键,保留并发和重复处理边界。
MongoDB 报 Transaction numbers are only allowed:先确认事务拓扑
MongoDB standalone 不支持多文档事务。先核对服务拓扑与实际配置,再受控迁移到当前支持的复制集,保留数据路径、客户端认证、成员认证与 TLS。


