今天公司要搬家了,为了方便在搬家的时候引起的网络变化而导致无法使用的公司测试服务器上的数据库,所以准备将服务器上的数据库备份到本机。
项目启动时创建本地的数据库连接的时候频繁的报出SQL错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1
经过网络查找和测试发现了原因!
公司测试服务器上的mysql版本是:5.0.87,
在这里执行 SET OPTION SQL_SELECT_LIMIT=DEFAULT,可以看到执行成功,
我本机的mysql版本是:5.6.15,
而在我电脑上执行 SET OPTION SQL_SELECT_LIMIT=DEFAULT,是错误的,
而项目中使用的mysql驱动mysq-connector-java-5.0.8-bin.jar,会在创建数据库的时候发送测试语句SET OPTION SQL_SELECT_LIMIT=DEFAULT,上面可以看到mysql5.6的版本已经不在支持该语句,所以会报错。
在stackoverflow上也有相关的解答:http://stackoverflow.com/questions/15669270/option-sql-select-limit-default
解决办法:更新数据库驱动文件到最新的推荐版本,下载地址:http://dev.mysql.com/doc/relnotes/connector-j/en/news-5-1.html
另外还在网上找到一个驱动文件各版本的状态表。
Connector/J 版本 | Driver类型 | JDBC 版本 | MySQL Server 版本 | 状态 |
---|---|---|---|---|
5.1 | 4 | 3.0, 4.0 | 4.1, 5.0, 5.1, 5.5,5.6,5.7 | 推荐 |
5.0 | 4 | 3.0 | 4.1, 5.0 | 正常维护 |
3.1 | 4 | 3.0 | 4.1, 5.0 | |
3.0 | 4 | 3.0 | 3.x, 4.1 |