问题:在创建表的时候如果有中文,则会提示:1067 - Invalid default value for 'sex'
比如:
-- 创建信息表
create table userInfo(
card_id int primary key auto_increment,
name varchar(20) not null,
age int not null,
sex char(2) default '男',
id_card varchar(20) unique
);
错误提示信息如下图:
原因:出错原因是因为数据库的编码不对,数据库默认编码是latin1,我们需要设置为utf8。
操作步骤分以下四步:
1. 修改数据库的默认编码,必须要找到my.ini的配置文件。
默认地址:C:\ProgramData\MySQL\MySQL Server 5.7
注意:ProgramData 文件夹是隐藏的,所以你需要到【查看】面板去勾选【隐藏的项目】去进行显示
2. 编辑该文件,并修改这两个值为: utf8,并且进行保存
default-character-set=utf8
character-set-server=utf8
3. 关闭mysql服务,再进行重启。(2种方法)
方法一:去对应的mysql的目录(默认地址:C:\Program Files\MySQL\MySQL Server 5.7\bin),执行命令。
# 关闭服务
net stop mysql5
# 启动服务
net start mysql5
方法二:去电脑的服务当中找到对应的服务关闭并重启服务。
4. 删除原来的数据库,再重新执行之前的SQL, 你即会发现执行成功。