一、慢查询的隐蔽性 在微服务架构里,数据库慢查询是最难定位的性能问题之一。不像 CPU 飙升或内存溢出那样有明确的监控报警,慢查询往往表现为“偶发性延迟抖动”——P99 延迟从 50ms 跳到 2000ms,但 P50 依然正常。这种间歇性问题在常规监控中容易被平均值掩盖,往往等到用户投诉才被发现
诊断 确认是否是 OOM Kill dmesg | grep -i "killed process" grep -i "oom" /var/log/messages 查看内存消耗来源 -- InnoDB Buffer Pool SHOW VARIABLES LIKE 'innod
诊断步骤 找到占用 CPU 最多的 MySQL 线程 -- 找出 MySQL 进程 PID pidof mysqld -- 查看线程 CPU top -H -p <pid> 将系统线程 ID 映射到 MySQL 内部线程 SELECT * FROM performan
故障现象 ERROR 1213: Deadlock found when trying to get lock ERROR 1205: Lock wait timeout exceeded; try restarting transaction UPDATE/DELETE 语句
开启慢查询日志 SET GLOBAL slow_query_log = ON; SET GLOBAL long_query_time = 1; -- 超过 1s 记录 SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log'; 用
故障现象 ERROR 1045 (28000): Access denied for user 'xxx'@'host' 密码正确但仍报错(主机白名单问题) MySQL 8.0 升级后认证插件不兼容 解决步骤 确认账号和主机白名单 SELECT use
故障现象 ERROR 1040 (HY000): Too many connections 所有新请求立即失败,现有连接可能正常 监控显示 Threads_connected = max_connections 常见根因 应用连接池配置过大或存在连接泄露
故障现象 报错 ERROR 2013: Lost connection to MySQL server during query 长事务/大查询中途断开 应用连接池频繁重连 常见根因 wait_timeout / interactive_timeout 设置过短 大数据包
故障现象 客户端报 ERROR 2003 (HY000): Can't connect to MySQL server on 'host' (111) 应用层连接池全部失败,服务不可用 telnet host 3306 连接拒绝 常见根因 MySQL 服务未启动
金仓 Oracle 兼容模式 KingbaseES 提供 Oracle 兼容模式,通过设置 database_mode = oracle 可兼容大量 Oracle 语法,但仍有部分差异需手工处理。 # 创建 Oracle 兼容模式数据库 CREATE DATABASE myapp_db TEMP