当前位置: 首页 > 工具软件 > SQLAdvisor > 使用案例 >

sqladvisor :Invalid parameter number 解决

韦衡
2023-12-01

在安装使用美团网sqladvisor时候报错:

./sqladvisor -h xxx -P 3306 -u admin -p 'xxx' -d sql_audit -q "SELECT FROM product_spu_modify where CreateTime > '2018-07-29 14:15:46';" -v 1
2018-07-30 17:51:19 10008 [Note] 第1步: 对SQL解析优化之后得到的SQL:select
AS * from sql_audit.product_spu_modify where (CreateTime > '2018-07-29 14:15:46')

2018-07-30 17:51:19 10008 [Note] 第2步:开始解析where中的条件:(CreateTime > '2018-07-29 14:15:46')

2018-07-30 17:51:19 10008 [Note] 第3步:SQLAdvisor结束!错误日志:Invalid parameter number

由于没有详细错误日志很难排查,但是肯定是依赖包的问题,这个包肯定和传入MYSQL参数有关系。经过多方面测试,困扰了我一周的问题解决了,问题出在centos安装的php-mysql扩展,会出现上面SQLAdvisor结束!错误日志:Invalid parameter number!!!!使用php-mysqlnd 替换掉php-mysql 。问题即可解决。

yum install php-mysqlnd

2018-08-02 14:57:12 5294 [Note] 第5步:字段CreateTime不是主键。表名:product_spu_modify

2018-08-02 14:57:12 5294 [Note] 第6步:开始验证 字段CreateTime是不是主键。表名:product_spu_modify

2018-08-02 14:57:12 5294 [Note] show index from product_spu_modify where Key_name = 'PRIMARY' and Column_name ='CreateTime' and Seq_in_index = 1

2018-08-02 14:57:12 5294 [Note] 第7步:字段CreateTime不是主键。表名:product_spu_modify

2018-08-02 14:57:12 5294 [Note] 第8步:开始验证表中是否已存在相关索引。表名:product_spu_modify, 字段名:CreateTime, 在索引中的位置:1

2018-08-02 14:57:12 5294 [Note] show index from product_spu_modify where Column_name ='CreateTime' and Seq_in_index =1

2018-08-02 14:57:12 5294 [Note] 第9步:开始输出表product_spu_modify索引优化建议:

2018-08-02 14:57:12 5294 [Note] Create_Index_SQL:alter table product_spu_modify add index idx_CreateTime(CreateTime)

2018-08-02 14:57:12 5294 [Note] 第10步: SQLAdvisor结束!

转载于:https://blog.51cto.com/277963679/2153620

 类似资料: