php mysql-proxy报错_MySQL-proxy代理导致PHP PDO::ATTR_EMULATE_PREPARES的预处理出错,MySQL报General error: 1243错误...
背景:
用的ThinkPHP5的框架。(相比之前的3.2版本,版本5都用了PDO处理数据库)
症状:
SQLSTATE[HY000]: General error: 1243 Unknown prepared statement handler (1) given to mysqld_stmt_execute
具体的错误SQL,可能是任何一条正常的SQL。
不是每次必报错,是偶尔,但是出现频率较高。经过测试:1000次请求,可能会有30次错误。
错误排查:
本地测试,无问题(PHP直连MySQL)。
线上的ThinkPHP3.2系统,无问题(PHP通过MySQL-proxy代理连接数据库)。
然后排查得出怀疑对象,线上的PHP PDO与MySQL-proxy。
然后给ThinkPHP5的数据库配置加一条:
//数据库连接参数
'params' =>[
PDO::ATTR_CASE => PDO::CASE_LOWER,PDO::ATTR_EMULATE_PREPARES => true,],
线上线下测试,均未再出现此问题。
当然,这个解决方案并不是很好。预处理强制给PHP自身处理,不会更安全。但总归是找到了问题所在。
感谢一起讨论指点的朋友。
后记:用Mycat代理MySQL,无此报错。不过要注意一点:因为Mycat是JAVA开发的,所以对数据库里时间的字段,不能值为 0000-00-00 00:00:00,会报错。
以及感谢如下参考:
题外:
php mysql-proxy报错_MySQL-proxy代理导致PHP PDO::ATTR_EMULATE_PREPARES的预处理出错,MySQL报General error: 1243错误...相关推荐
- mysql 1243_MySQL-proxy代理导致PHP PDO::ATTR_EMULATE_PREPARES的预处理出错,MySQL报General error: 1243错误...
背景: 用的ThinkPHP5的框架.(相比之前的3.2版本,版本5都用了PDO处理数据库) 症状: SQLSTATE[HY000]: General error: 1243 Unknown prep ...
- MySQL-proxy代理导致PHP PDO::ATTR_EMULATE_PREPARES的预处理出错,MySQL报General error: 1243错误...
背景: 用的ThinkPHP5的框架.(相比之前的3.2版本,版本5都用了PDO处理数据库) 症状: 报错信息: SQLSTATE[HY000]: General error: 1243 Unknow ...
- mysql 双引号报错_MySQL 双引号导致ERROR 1054 (42S22) at line 1: Unknown column
问题现象 发现监控进程获取MySQL数据的时候报错导致监控进程报错: mysql: [Warning] Using a password on the command line interface c ...
- mysql 外键报错_MySQL添加外键、删除外键方式,MySQL删除外键报错快速解决方案...
外键的作用主要在于对各类表单进行约束,避免出现冗余数据及超出数据.那么,MySQL如何添加与删除外键?添加删除外键时报错是什么原因? 本文将从创建MySQL表单时添加外键.给已存在表单添加外键.删除外 ...
- mysql的count报错_Mysql报错注入原理分析count、rand、groupby
0x00 疑问 一直在用mysql数据库报错注入方法,但为何会报错? 百度谷歌知乎了一番,发现大家都是把官网的结论发一下截图,然后执行sql语句证明一下结论,但是没有人去深入研究为什么rand不能和o ...
- mysql 3种报错_MySQL读取Binlog日志常见的3种错误-阿里云开发者社区
MySQL读取Binlog日志常见的3种错误 mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4' 当我们在my. ...
- mysql安装开始报错_MYSQL安装报错 -- 出现Failed to find valid data directory.
运行环境:windows10 数据库版本:mysql.8.0.12 安装方式:rpm包直接安装 问题描述: mysql初始化的时候找不到对应的数据库存储目录 报错代码: 2018-10-13T03:2 ...
- linux mysql stop 报错_mysql linux上安装使用
安装启动 安装之前可以看下系统中有没有已经安装. 查看所有软件:dpkg -l 1.查看mysql安装的版本 mysql --version 2.mysql状态 service mysql statu ...
- 报错注入是什么?一看你就明白了。报错注入原理+步骤+实战案例
「作者主页」:士别三日wyx 「作者简介」:CSDN top100.阿里云博客专家.华为云享专家.网络安全领域优质创作者 「专栏简介」:此文章已录入专栏<网络安全快速入门> 报错注入 一. ...
最新文章
- NPOI读取Excel模板并向其中写入数据
- 信息传递服务器,AJAX的与服务器之间的信息传递原理(初学)
- 【转】30分钟学会UML类图
- 对比两个字符串相等_字符串匹配问题
- poj 1502 单源最短路径
- mips64高精度时钟引起ktime_get时间不准,导致饿狗故障原因分析【转】
- WPF 自己动手来做安装卸载程序
- js打开新窗口的方法总结
- QT tablewidget设置表头
- 别催更啦!手淘全链路性能优化下篇--容器极速之路
- java 可达性算法实现,垃圾标记阶段算法之可达性分析算法
- PlaySound error
- MySQL Front订单信息表,mysqlfront
- manacher魔板
- FPGA--有限状态机(FSM)的设计
- java graphics2d 乱码_Graphics2D 中文乱码
- 【卡尔曼滤波】我所理解的卡尔曼滤波
- 前端例程20210510:新拟物风格(Neumorphism)设计与实现
- Linux终端设备文件介绍
- 系统维护常用命令及工具
热门文章
- ARIMA模型之疏系数模型
- ubuntu16 黑主题_给Ubuntu 8.10安装超炫酷黑色新主题
- python实例变量不存在_python – peewee实例匹配查询不存在
- 手把手教你用原始方式上传项目至GitHub
- django系列5.1--ORM对数据库的操作
- element-ui el-radio 回显格式为中文 传值格式为数值
- Spring Cloud 之 Feign 使用HTTP请求远程服务
- 基于百度AI+jquery-webcam+servlet实现人脸识别登录,兼容各主流浏览器
- Python之路 day1 基础1 变量 for while 用户输入
- 深入理解JSON对象