前言
这个错误是在使用jmeter连接数据库时发现的。弄了一个下午,太头疼了!!
建议大家先从其它博客上寻找方法解决。【如果实在解决不了再阅读本文】
因为笔者也不知道这个解决方法的原理,它很玄学,所以大家实在是解决不了的话,再来阅读。
一、错误发现
1.对"测试计划"创建"线程组"后,在里面设置"JDBC Connection Configuration",配置基本信息如下图所示。其中Database URL格式为:jdbc:mysql://主机名或ip:端口号/数据库名,比如:jdbc:mysql://127.0.0.1:3306/test
怎么查看主机名,用户名和密码?——打开Navicat,右击选择"编辑连接",打开后如下方右图所示。(注意:主机名和连接名不是同一个东西!)
2.配置"JDBC Request",填写SQL语句以及对应的JDBC连接管理名称,就是第一张图的第一个方框里的内容,如下图所示:
3.接着设置"查看结果树",点击运行后查看结果,发现报错。
二、解决方案
百度了很多种方法,但是解决不了。先写下之前尝试过的方法吧!
1.时间标准错误
在Database URL后面加上?serverTimezone=UTC,就成功了,其中UTC是统一标准世界时间。
但对笔者来说没用,大家可以试试。
2.数据库名错误
检查自己的Database URL,看最后的数据库名是否正确,不正确的话自然报错。
3.修改Database URL当中的主机名
大家可能会有疑问,为什么要修改主机名呢?主机名不就是127.0.0.1或者是localhost吗?
——主机名是没错,但是在Database URL中的主机名可能就有些问题了。
笔者在翻遍所有的解决方法后几乎绝望,偶然将自己数据库URL中的主机名改成了127.0.0.2,接着运行,居然神奇地发现它通过了!
要知道,在Navicat当中,笔者的主机名可是127.0.0.1,并且也没有设置其它的主机,但是它就是能通过!(如果有大佬能够解释一下,笔者将万分感谢)
诶!大家也别管是什么玄学,试下万一通过了呢?
后来笔者又试了一下127.0.0.3,127.0.0.4,发现也能通过。不管怎么样,这个bug算是解决了,写下这篇博客希望大家能少走弯路。