sqladvisor :Invalid parameter number 解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqladvisor :Invalid parameter number 解决相关的知识,希望对你有一定的参考价值。

在安装使用美团网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结束!

以上是关于sqladvisor :Invalid parameter number 解决的主要内容,如果未能解决你的问题,请参考以下文章

(MYSQL)SQL优化工具 - SQLAdvisor 安装使用详解

SQL索引优化工具SQLAdvisor介绍

Wordpress wp rest api v2 错误 400 (Bad Request)" Object code: "rest_invalid_param", mes

SQLAdvisor使用(Centos6.8版本)

警告:PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: parame

centos7下安装sql优化工具SQLAdvisor