2013-02-27 123 views
23

我使用的是最新版本的MySQL ==> mysql-5.6.10-winx64.zip錯誤代碼1064,SQL狀態42000:您的SQL語法中有錯誤;

創建數據庫,每一件事情是確定的:「我認爲」 當我嘗試執行這個簡單的命令;

"select * from family" 

我得到這個錯誤:

錯誤代碼1064,SQL狀態42000:您在您的SQL語法 有一個錯誤;檢查對應於你的MySQL服務器版本 爲使用近「選項SQL_SELECT_LIMIT = DEFAULT」在 線正確的語法1

我花了很多時間尋找一個解決方案,但沒有解決發現的手冊: (

+5

顯示您執行的所有查詢,我在您的選擇查詢中看不到「OPTION SQL_SELECT_LIMIT = DEFAULT」。 – 2013-02-27 13:49:27

+0

你用什麼來查詢數據庫? - 聽起來像一個圖形用戶界面/工具可能會添加額外的東西到你的查詢之前執行它 – Steve 2013-02-27 13:51:21

+0

運行'顯示變量其中variable_name ='sql_select_limit';'檢查它是數字? – SparKot 2013-02-27 13:57:14

回答

29

這看起來像一個JDBC驅動程序來錯誤當JDBC驅動程序初始化連接時,它發送幾個命令到MySQL服務器,其中之一是:

SET OPTION SQL_SELECT_LIMIT=DEFAULT 

的問題是, SET OPTION語法已被廢棄一段時間,現在不再在MySQL 5.6中有效。下面是MySQL的bug數據庫相關的錯誤對話:

Bug #66659: mysql 5.6.6m9 fails on OPTION SQL_SELECT_LIMIT=DEFAULT

嘗試升級您的JDBC MySQL驅動程序。錯誤會話列出了一些其他選項,以防升級驅動程序不是一種選擇。

5

幾個星期前我有同樣的問題。遵循以下步驟,它非常解決了這個問題。

  1. 複製的jar文件的最新版本(使用mysql-connector-java的5.1.23-bin)添加到.. \的NetBeans 7.3 \ IDE \模塊\分機。我的早期版本的驅動程序是mysql-connector-java-5.1.18-bin。

  2. 在NetBeans IDE中更改驅動程序版本。在IDE的「服務」窗口中,展開驅動程序 - >右鍵單擊MySQL(連接器/ J驅動程序)並選擇自定義。刪除先前的驅動程序並將其指向最新的驅動程序(C:\ Program Files(x86)\ NetBeans 7.3 \ ide \ modules \ ext \ mysql-connector-java-5.1.23-bin.jar)。點擊確定並重新啓動IDE。

這應該可以解決問題。

+0

對我來說這是個騙局......謝謝! – 2013-06-02 12:58:21

+0

我遇到了類似的工作,在一個播放項目「mysql」%「mysql-connector-java」%「5.1.26」,做了詭計 – jasonoriordan 2014-06-14 16:08:42

11

我按照上面的說明,這對我有用!

  1. 下載最新的JAR從這裏文件: http://dev.mysql.com/downloads/mirror.php?id=412737 將它解壓縮 複製jar文件 「使用mysql-connector-java的5.1.25-bin.jar」 到這個文件夾:C:\ Program Files文件\的NetBeans 7.3 \ ide \ modules \ ext

  2. 在Netbeans IDE中:從數據庫斷開連接。 單擊服務。展開Drivers。右鍵單擊MySQL並按自定義。 添加最新的驅動程序 刪除以前的驅動程序。

  3. 重新連接到IDE中的dabatase。

+0

我正在修改一個Tomcat服務器:Tomcat/lib/ext/mysql.jar,但除此之外,替換使它工作! – ForgetfulFellow 2016-08-17 00:10:28

0

如果驅動程序建議不起作用,請檢查您的sql是否有不可打印的字符。我只花了一個小時來解決這個問題,只是爲了在我的sql語句結尾處發現隱藏的u + 200b字符。

0

當我將數據庫表結構文件轉儲到數據庫時,我得到了同樣的錯誤。錯誤是把語法放在所有的表格之前,但沒有檢查它們在數據庫中的存在。 問題出在「DROP TABLE usermgmt」。 我刪除了丟棄表格的代碼行,並且這次沒有發生任何錯誤。

0

我爲前綴的表的名稱與數據庫的名稱,如

select * from database_name.table_name; 

和它的工作完美,所以最有可能有一個名稱衝突。

相關問題