错误1364:1364:字段'ssl_cipher'没有默认值

时间:2013-08-30 02:12:08

标签: mysql insert

ERROR 1364: 1364: Field 'ssl_cipher' doesn't have a default value .

SQL声明:

INSERT INTO `samedaycrm4`.`users` (`Host`, `User`, `Password`) VALUES ('%', 'Bonnie', '*BB71B8925EED8E5387A872A38E566BFCB0F78071')

我正在尝试确定错误的原因错误1364:1364:字段'ssl_cipher'没有默认值..?

提前致谢...

3 个答案:

答案 0 :(得分:6)

表格中的ssl_cipher列已标记为non-null,但您的INSERT查询未为其提供值。 MySQL将尝试在这些情况下分配默认值,但是您的列没有给出一个。

您需要为ssl_cipher设置默认值,或更改表格,使ssl_cipher未标记为non-null

答案 1 :(得分:5)

//这是因为mysql数据库中的用户表的内部结构(mysql.user)有许多管理权限列接受“N'或者' Y'值但不是NULL值。不通过INSERT方法在用户添加语法中分配这些值将为表提供空值,因此发生错误1364。 //而不是使用GRANT语法将不向用户提供管理权限 mysql>使用mysql;

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE
       -> ON database.*  //for all tables in DATABASE database
       -> TO 'user'@'localhost'
       -> IDENTIFIED BY 'password';

//将创建用户

答案 2 :(得分:-1)

FYI查看来自" Sergei Golubchik"的评论在https://bugs.mysql.com/bug.php?id=14579

[它对我来说并不像是一个错误。 从3.23开始不推荐使用INSERT INTO mysql.user - 应该使用GRANT或CREATE USER添加新用户。 至于GRANT在Windows上失败,它是BUG#13989的副本,这是"不是错误"无论是。 GRANT失败,因为在Windows上,安装程序将以下行添加到my.ini SQL模式=" STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 这会阻止GRANT自动创建用户。]

最后是CREATE USER的实现,你可以在 -

找到

https://dev.mysql.com/doc/refman/5.7/en/adding-users.html

它应该解决你的问题,使用"创建用户"方法