向mysql插入數據是出現Incorrect string value錯誤


在向Mysql中添加中文數據時,報錯(incorrect string value ) 字符轉換不正確

插入語句:mysql>  insert into user1 (name,password,email,age) values ('zs',md5('123456'),'zs@sohu.com',30);

返回錯誤:ERROR 1366 (HY000): Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1

將插入語句中的中文改為英文后問題消失,順利出入

插入語句:mysql>  insert into user1 (name,password,email,age) values ('趙六',md5('123456'),'zl@sohu.com',60);

這個問題,原因是UTF-8編碼有可能是兩個、三個、四個字節。而Mysql的utf8編碼最多3個字節,遇到超過3個字節的的數據就插不進去。

在網上找到了解決辦法

1.在Mysql的安裝目錄下有一個文件叫做my.ini。(如沒有可以自己新建一個)
在其中添加兩句:

[mysqld]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4


然后進行重啟Mysql服務。

也可以用命令將數據庫轉換格式

 alter database 數據庫名  character set utf8mb4 collate utf8mb4_general_ci;

2.將已經建好的表也轉換為utf8mb4格式

alter table 表名 convert to character set utf8mb4 collate utf8mb4_bin;

 


免責聲明!

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



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