mysql數(shù)據(jù)庫寫入數(shù)據(jù)提示1366代碼錯誤解決方法
mysql數(shù)據(jù)庫寫入數(shù)據(jù)提示1366代碼錯誤解決方法
錯誤代碼: 1366
Incorrect string value: '張三...' for column `student`.`student`.`studentname` at row 1
原因分析:
在創(chuàng)建數(shù)據(jù)庫的時候沒有指定數(shù)據(jù)庫的字符集,直接用下面命令創(chuàng)建:
DROP DATABASE IF EXISTS student;
CREATE DATABASE student;
并且在安裝數(shù)據(jù)庫時也沒有修改配置文件指定默認數(shù)據(jù)庫的字符集。查詢字符集命令:
SHOW VARIABLES LIKE '%char%';
在mysql中新建數(shù)據(jù)庫,如果只寫數(shù)據(jù)庫名,沒有設置字符集和排序規(guī)則,默認字符集為latin1 ,排序規(guī)則為latin1_swedish_ci 。創(chuàng)建的數(shù)據(jù)庫不是utf-8字符集,而latin1是不支持中文的。所有提示錯誤1366錯代碼。
解決辦法:
重新創(chuàng)建數(shù)據(jù)庫命令如下:
CREATE DATABASE `student` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
或者修改數(shù)據(jù)庫字符集命令如下:
alter database student character set utf8;
修改完成數(shù)據(jù)庫字符集,重啟數(shù)據(jù)庫,然后在修改表字符集命令如下:
ALTER TABLE 表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
在修改列字符集,命令如下:
ALTER TABLE 表名 CHANGE 列名 列名 VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
下一篇:MySQL數(shù)據(jù)庫十大經(jīng)典錯誤案例