当使用MySQL5.7时,向表中添加记录含有中文报错
添加一条记录:
insert into student values(1,’张三’);
报错:
mysql> insert into student values(1,’张三’);ERROR 1366 (HY000): Incorrect string value: ‘\xD5\xC5\xC8\xFD’ for column ‘name’ at
row 1
查看表的创建信息:
show create table 表名称\G#查看student表的详细创建信息
show create table student\G
#结果如下*************************** 1. row ***************************
Table: student
Create Table: CREATE TABLE `student` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
查看数据库的创建信息:
show create database 数据库名\G#查看atguigudb数据库的详细创建信息
show create database atguigudb\G
#结果如下*************************** 1. row ***************************
Database: atguigudb
Create Database: CREATE DATABASE `atguigudb` /*!40100 DEFAULT CHARACTER SET latin1 */
1 row in set (0.00 sec)
问题解决:
- 步骤1:查看编码命令
show variables like ‘character_%’;show variables like ‘collation_%’;
- 步骤2:修改mysql的数据目录下的my.ini配置文件
[mysql] #大概在63行左右,在其下添加…
default-character-set=utf8 #默认字符集
[mysqld] # 大概在76行左右,在其下添加
…
character-set-server=utf8
collation-server=utf8_general_ci
- 步骤3:重启服务
- 步骤4:查看编码命令
show variables like ‘character_%’;show variables like ‘collation_%’;