#MySQL
共 20 篇文章
MySQL 旧版本 DELETE 使用表别名时报 1064
区分 MySQL 8.0.16 前后的单表 DELETE 别名语法;保留 LIMIT 时优先去别名,使用多表形式时明确删除目标及限额差异。
MySQL 虚拟机 127.0.0.1 能连,localhost 报 2002:显式选择 TCP
Unix 宿主机通过端口转发连接虚拟机 MySQL,127.0.0.1 正常而 localhost 报 socket 2002 时,显式选择 TCP,核对宿主机端口与实际客户端配置。
MySQL GROUP_CONCAT 结果被截断:先查实际连接的长度上限
GROUP_CONCAT 结果缺失先核会话字节上限和告警,按需求临时调整、恢复连接状态,不把视图类型或包大小混为根因。
MySQL JDBC 报 Public Key Retrieval is not allowed:检查 TLS 和 RSA 认证
Java 连接 MySQL 8 后出现公钥获取限制,区分 TLS、固定 RSA 公钥和临时获取,保留证书校验及驱动版本条件。
Docker Compose 配置了 env_file 仍提示变量未设置
Docker Compose 声明 env_file 后仍提示变量未设置,可能是 environment 的插值空值覆盖了文件内容。区分容器环境与 CLI 插值,按用途调整配置,并在重建服务前检查最终模型。
MySQL 写入特殊字符报 Incorrect string value:列与连接都要支持 utf8mb4
MySQL 四字节字符写入失败,检查 utf8mb3 列与连接编码,保留 utf8mb4 迁移、排序规则、历史乱码和恢复边界。
MySQL CONCAT 拼接姓名后,LIKE 搜不到姓氏为 NULL 的记录
MySQL 可空姓名字段参与 CONCAT 后,整个拼接结果变为 NULL,LIKE 因而漏掉记录。按姓名格式选择逐参数 COALESCE 或 CONCAT_WS,并区分空字符串与空值。
HikariCP 长任务后 MySQL 通信失败:连接已借出却长时间没有 SQL
区分池内空闲和任务持有连接;核对会话与网络超时,避免用 maxLifetime 或自动重连掩盖事务边界问题。
MySQL 临时表自连接报 ERROR 1137:换别名仍引用同一张表
MySQL 临时表自连接报 1137 时,识别同一张 TEMPORARY 表的重复引用,按版本与结果使用范围选择 CTE 或独立临时副本。
MySQL 改了容器密码仍 Access denied:先看已有数据卷
容器环境变量变化不等于已有数据库账号密码变化。先确认数据目录和账号匹配,再选择受控改密,保留数据与恢复路径。
MySQL CREATE TABLE 后 ROLLBACK 没撤销:DDL 已提前提交
MySQL 普通 DDL 会隐式提交此前业务事务,后续 ROLLBACK 无法撤销。区分 InnoDB、atomic DDL 和临时表规则,将结构迁移移出业务事务并核对已提交数据。
MySQL UPDATE 返回 0 rows affected,但目标记录确实存在
MySQL UPDATE 默认按实际变化计数,值相同和条件未匹配都可能返回 0。区分 Rows matched 与 Changed,核对 CLIENT_FOUND_ROWS 连接语义,并修正接口的不存在判断。
MySQL 升级后 DELETE 报 ERROR 1093:多套一层子查询仍可能被合并
MySQL 升级后同表子查询写操作报 1093,检查派生表合并,再按版本选择 NO_MERGE 或受控会话方案,保留候选行与数据恢复要求。
MySQL BETWEEN 按日期筛选漏掉结束日记录
DATETIME 与日期上界比较时,结束边界落在当天零点。改用包含起点、不包含次日零点的范围,保留小数秒,并核对 TIMESTAMP 会话时区。
SSH 隧道已建立,连接 MySQL 时仍报 channel open failed: Connection refused
SSH 认证和本地监听成功后,目标数据库连接仍可能失败。针对同机 MySQL 仅监听 IPv4 回环的情况,修正 -L 的远端目标,不扩大数据库公网监听。
MySQL 查询报 Every derived table must have its own alias
MySQL 的 FROM 或 JOIN 子查询缺少表别名时报 1248。区分列别名与派生表名,核对多层括号、输出列名及连接结果。
MySQL 导入报 ERROR 1153:客户端与服务端的包大小都要检查
导入大 BLOB 或多行 INSERT 时,仅改 mysql 客户端上限可能无效。检查服务端、连接继承值和备份语句,再评估临时调整与恢复重试。


