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'没有默认值..?
提前致谢...
答案 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
它应该解决你的问题,使用"创建用户"方法