Field 'ssl_cipher' doesn't have a default value 错误解决

原文: MySQL 管理

   TEST 参考文章

添加用户:

insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));

报以下的错误 ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value 错误

错语原因:

mysql 用户表的中某些字段不能为空,没有默认值,其实是操作错误,mysql 添加用户是不能这样直接 insert user 表的。

解决方法:

正确的添加用户方法:

GRANT USAGE ON *.* TO 'user01'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;

用户:user01,密码:123456,这样就添加了一个新的用户,不会出以上的错误了。

更多解析

  一条鱼

用 insert 添加用户时,可能会报错:

ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value

my-default.ini中有一条语句:

指定了严格模式,为了安全,严格模式禁止通过 insert 这种形式直接修改 mysql 库中的 user 表进行添加新用户

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

将 STRICT_TRANS_TABLES 删掉之后即可使用 insert 添加