MySQL #1406 Data too long錯誤


首先,我在寫這篇記錄的時候其實問題還沒有解決,一直顯示同一個問題——date too long

我查了很多網上的解決方法,差不多就是兩種解決方式,而兩種我都試過了,准備先把這兩種方法記錄下來,后面真正解決完再來編輯。

A. 字符編碼:

   “使用命令行方式登陸到MySQL服務器, 建立一個數據庫,數據庫編碼設為UTF-8。此時,如果直接在命令行窗口使用insert語句插入中文,就遇到類似 ERROR 1406 (22001): Data too long for column 'name' at row 1 錯誤。乍一看,是字段長度引起的問題,但是實際是字符編碼的問題。可是嘗試以下解決方法:
      1、在Linux中,使用終端方式登陸MySQL服務器,運行以下命令:
         set names utf8;
         該命令將終端的字符編碼設為了UTF-8。此后再插入數據庫中的內容都會按照UTF-8的編碼來處理。
         注意:在Linux中,終端方式中直接插入中文內容,可能並不會出現1406錯誤,但是這時插入的數據
         是按照系統的默認編碼進行處理。因此對編碼為UTF-8的數據庫,在顯示數據的地方可能會出現亂碼。
          
       2、在Windows下,命令行窗口不支持UTF-8編碼,所以使用“set names utf8;”不會達到轉化中文的
         效果。但是這個問題還是可以解決的:
        (1)使用默認編碼建立數據庫。這種情況下就可以直接輸入中文了,但是相應的問題,就是會
             失去UTF-8編碼的靈活性。特別是不利於軟件的國際化。
        (2)放棄命令行窗口登錄MySQL,使用圖形化客戶端。客戶端工具可以MySQL的官方網站上找到。”

B. Mysql配置文件:
   “在my.ini里找到sql- mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'把其中 的STRICT_TRANS_TABLES,去掉,或者把sql- mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION注釋掉,然 后重啟mysql就ok了”
 
我先是用的第二種方法,沒解決掉,再用了第一種,等我解決掉了再來編輯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM