關(guān)于Mysql插入中文字符報(bào)錯(cuò)ERROR 1366(HY000)的解決方法
問題
- 加載含有中文字符的數(shù)據(jù)到表中出錯(cuò)
mysql> CREATE TABLE food( -> id INT(10) PRIMARY KEY AUTO_INCREMENT NOT NULL, -> NAME VARCHAR(20) NOT NULL, -> company VARCHAR(30) NOT NULL, -> price FLOAT, -> produce_time YEAR, -> validity_time INT(4), -> address VARCHAR(50) -> ); Query OK, 0 rows affected (0.07 sec)
mysql> INSERT INTO food(id,NAME,company,price,produce_time,validity_time,address) VALUES(4,'FF咖啡','FF咖啡廠',20,2002,5,'天津'); ERROR 1366 (HY000): Incorrect string value: '\xE5\x92\x96\xE5\x95\xA1' for column 'NAME' at row 1
原因
- mysql默認(rèn)編碼latin1是不支持中文字符的,所以報(bào)錯(cuò)。
解決
- 通過設(shè)置編碼字符為utf8,從而支持中文字符。
1、查看當(dāng)前庫(kù)默認(rèn)編碼格式
mysql> show variables like '%char%'; +--------------------------------------+----------------------------+ | Variable_name | Value | +--------------------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | | validate_password_special_char_count | 1 | +--------------------------------------+----------------------------+ 9 rows in set (0.00 sec)
2、將character_set_database和character_set_server設(shè)置為utf8
mysql> set character_set_database=utf8; Query OK, 0 rows affected, 1 warning (0.02 sec) mysql> set character_set_server=utf8; Query OK, 0 rows affected (0.00 sec)
3、刪除數(shù)據(jù)庫(kù)并新建數(shù)據(jù)庫(kù),并切到該數(shù)據(jù)庫(kù)下
- 因?yàn)橹挥性诰幋a格式改變以后,再建庫(kù)才會(huì)生效。
drop database student; create database student; use student;
驗(yàn)證
建表、添加數(shù)據(jù)
mysql> create table Student( -> Sno int not null auto_increment primary key, -> Sname varchar(10) not null, -> Sex char(1) not null, -> Sage tinyint(100) not null, -> Sdept char(4) not null)comment = '學(xué)生表'; Query OK, 0 rows affected (0.03 sec)
mysql> insert into Student values ( 1,'李勇', '男', 20, 'CS'); Query OK, 1 row affected (0.02 sec)
ok,成功解決
總結(jié)
如果某表中需要添加中文字符時(shí)需要在其庫(kù)之前將character_set_database和character_set_server
設(shè)置為utf8
set character_set_database=utf8; set character_set_server=utf8;
然后再建庫(kù),建表插入中文字符數(shù)據(jù)
到此這篇關(guān)于關(guān)于Mysql插入中文字符報(bào)錯(cuò)ERROR 1366(HY000)的解決方法的文章就介紹到這了,更多相關(guān)Mysql中文字符報(bào)錯(cuò)ERROR1366內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux下安裝Mysql多實(shí)例作為數(shù)據(jù)備份服務(wù)器實(shí)現(xiàn)多主到一從多實(shí)例的備份
由于第一次接觸LINUX,花了三天時(shí)間才算有所成就,發(fā)出來(lái)希望可以給大伙帶來(lái)方便2010-07-07利用phpmyadmin設(shè)置mysql的權(quán)限方法
這篇文章主要介紹了如何利用phpmyadmin設(shè)置mysql的權(quán)限方法,需要的朋友可以參考下2018-03-03insert into … on duplicate key update / replace into 多行數(shù)據(jù)介紹
當(dāng)我插入一條數(shù)據(jù)時(shí),我要判斷(k1,k2)是否已經(jīng)存在(1條selete),若存在就update,不存在就insert2013-08-08關(guān)于MySQL的sql_mode合理設(shè)置詳解
這篇文章主要給大家介紹了關(guān)于MySQL的sql_mode合理設(shè)置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07MySQL啟動(dòng)報(bào)錯(cuò)提示發(fā)生系統(tǒng)錯(cuò)誤5,拒絕訪問的原因和解決方法
使用命令net start mysql啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)時(shí)候,出現(xiàn)如下錯(cuò)誤提示發(fā)生系統(tǒng)錯(cuò)誤5,拒絕訪問,所以本文給大家介紹了MySQL啟動(dòng)報(bào)錯(cuò)提示發(fā)生系統(tǒng)錯(cuò)誤5,拒絕訪問的原因和解決方法,需要的朋友可以參考下2024-01-01MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解
這篇文章主要介紹了MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解,THREAD_CACHE是Mysql的連接池,table_cache指定表高速緩存的大小,需要的朋友可以參考下2014-07-07MySQL 存儲(chǔ)過程的優(yōu)缺點(diǎn)分析
存儲(chǔ)過程(Stored Procedure)是一種在數(shù)據(jù)庫(kù)中存儲(chǔ)復(fù)雜程序,以便外部程序調(diào)用的一種數(shù)據(jù)庫(kù)對(duì)象。本文將分析存儲(chǔ)過程的優(yōu)缺點(diǎn)2021-05-05

mysql開啟慢查詢(EXPLAIN SQL語(yǔ)句使用介紹)