1、連接類
(1)、問題:MySQL server has gone away
解決辦法:出現該報錯常見的原因是服務器超時了並且關閉了連接。缺省地,如果沒有事情發生,服務器在 8個小時后關閉連接。如果該報錯經常出現,請聯系DBA設置wait_timeout變量改變時間限制。另外如果mysqld得到一個太大或不正常的包,它也會認為客戶端連接出錯了並關閉連接。
(2)、問題:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.0' (10065)
解決辦法:首先請在本地ping hostname或者192.168.1.0,在確認IP可以ping通之后(如果ip無法ping通請聯系網站運維負責人處理),則繼續telnet hostname 3306(並非所有的mysql端口號都為3306,請根據實際情況調整)確認服務器層TCP通信是否有問題,如果該步驟正常則是因為該客戶端的IP被MySQL服務器上的防火牆阻隔了,請聯系網站運維負責人處理
(3)、問題:ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)
解決辦法:首先請在本地ping hostname或者192.168.1.0,在確認IP可以ping通之后(如果ip無法ping通請聯系網站運維負責人處理),則繼續telnet hostname 3306(並非所有的mysql端口號都為3306,請根據實際情況調整)確認服務器層TCP通信是否有問題,如果該步驟出現問題則通常意味着沒有一個MySQL服務器運行在系統上或當試圖連接mysqld服務器時,你正在使用一個錯誤的套接字文件或TCP/IP端口。請聯系DBA檢查mysql進程是否存在,如果mysqld進程正在運行,請嘗試通過不同的連接來檢查服務器.
(4)、問題:Host 'hostname' is blocked because of many connection errors.
解決辦法:這意味着,mysqld已經得到了大量(max_connect_errors)的主機'hostname'的在中途被中斷了的連接請求。在max_connect_errors次失敗請求后,mysqld認定出錯了(類似於一個黑客的攻擊),並且阻止該站點進一步的連接。這時請聯系DBA在MySQL數據庫上處理。另外缺省地,mysqld在10個連接錯誤后阻塞一台主機。你可以通過象這樣啟動服務器很容易地調整它:
(5)、問題:ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password:YES)
解決辦法:如果出現上述報錯,首先請確認user用戶是否存在。其次檢測使用user賬號登錄的客戶端IP是否被授權登錄,如果未授權則聯系DBA做授權處理。最后檢測密碼是否輸入正確,如果不正確,請重新輸入,否則聯系DBA重置密碼
(6)、問題:Access denied for user: 'roota@localhost' (Using password: NO)
解決辦法:請檢查登錄MySQL的用戶是否存在,如果用戶不存在則聯系DBA創建
(7)、問題:ERROR 1130: Host xx.xx.xx.xx is not allowed to connect to this MySQL server
解決辦法:出現該報錯是因為mysql服務器沒有賦予此客戶端遠程連接的權限。請聯系DBA授權
(8)、問題:Unknown MySQL Server Host 'localhosadst' (11001)
解決辦法:連接MySQL數據庫時指定的host不存在或者無法連接,請在重新連接前檢查該host是否可以接受連接,具體方法參考(2)、(3)
2、操作類
(1)、問題:You have an error in your SQL syntax
解決辦法:出現這個問題,對,不用懷疑,就是你的SQL寫錯了
(2)、問題:Duplicate entry 'xxx' for key 1
解決辦法:出現這種報錯主要是因為索引值重復了,因為如果該索引是primary或者unique這兩種,那么數據表的數據對應的這個字段就必須保證其每條記錄的唯一性,否則就會產生這個錯誤。可以把重復的數據記錄干掉,只保留一條來避免這種問題出現
(3)、問題:Duplicate key name 'xxx'
解決辦法:將添加的字段xxx已經存在,這個時候看一下已經存在的字段是否和將要添加的字段屬性完全相同,如果相同則可以跳過不執行這句sql,如果不一樣則刪除掉這個字段。
(4)、問題:Lost connection to MySQL server during query
解決辦法:MySQL服務器在查詢期間丟失連接,可以采用這幾種方法來.一般出現該錯誤是因為線程活躍時間太短,如果頻繁出現,請聯系DBA修改MySQL服務器的超時限制