報錯內容:ERROR 1366 (HY000): Incorrect string value: ‘\xBF’ for column ‘start_address’ at row 1
主要還是因爲導入的數據中含有中文的原因。嘗試了網上的多種方案,比如將格式改爲gbk,gb2312都不行。後來是改爲utf8最終可以了。當然還伴隨着一些其他配置。具體過程如下:
1、創建表時就將含有中文的字段設置格式 character set utf8
mysql> create table user_profile(userid VARCHAR(100) NOT NULL,mobile_type VARCHAR(30),mobile_system VARCHAR(30),start_telecom VARCHAR(20) character set utf8,network_type VARCHAR(20) character set utf8,start_address VARCHAR(120) character
set utf8,PRIMARY KEY(userid));
如果表創建好之後,已經存在數據了,字段格式就不好改了,如果表裏沒數據的話,還是刪掉重新建表,比較方便。
刪除表格操作爲mysql> drop table user_profile;
2、之後再設置幾個參數 (toutiao是我的table所在的數據庫)
mysql> set names 'utf8';
mysql> alter database toutiao character set utf8;
設置好之後查看一下mysql> show variables like '%char%';
以下幾個參數都編程utf8了
3、之後就可以導入數據了(我的數據是csv格式,csv編碼格式一般默認就是utf8的)
mysql> load data infile '/var/lib/mysql-files/db_user_info.csv' into table user_profile character set utf8 fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';
保險起見我這裏也是用了character set utf8.不知去掉之後可不可以,爲了減少不必要的麻煩,我這裏就帶着了
就成功啦可以正常地導入數據啦
補充:後來又嘗試了一下創建新表導入數據:
mysql> create table news_article_content(newsid VARCHAR(100) NOT NULL,title VARCHAR(100),content VARCHAR(1000),create_t
ime DATE,resource VARCHAR(100),content_type VARCHAR(100),PRIMARY KEY(newsid))
新表中並沒有指定utf8格式。
在導入時使用地語句中有指定utf8格式。能夠成功導入。
mysql> load data infile '/var/lib/mysql-files/db_news_info.csv' into table news_article_content character set utf8 fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';
說明能否成功導入的重點在於以下三步: