今天公司要搬家了,爲了方便在搬家的時候引起的網絡變化而導致無法使用的公司測試服務器上的數據庫,所以準備將服務器上的數據庫備份到本機。
項目啓動時創建本地的數據庫連接的時候頻繁的報出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 |