一、报错:#1364 - Field ‘ssl_cipher’ doesn’t have a default value
想往user表里插入一行记录,为了图方便直接复制了原有的记录,复制出来的SQL如下:
INSERT INTO user
(Host
, User
, Password
, Select_priv
, Insert_priv
, Update_priv
, Delete_priv
, Create_priv
, Drop_priv
, Reload_priv
, Shutdown_priv
, Process_priv
, File_priv
, Grant_priv
, References_priv
, Index_priv
, Alter_priv
, Show_db_priv
, Super_priv
, Create_tmp_table_priv
, Lock_tables_priv
, Execute_priv
, Repl_slave_priv
, Repl_client_priv
, Create_view_priv
, Show_view_priv
, Create_routine_priv
, Alter_routine_priv
, Create_user_priv
, Event_priv
, Trigger_priv
, Create_tablespace_priv
, ssl_type
, max_questions
, max_updates
, max_connections
, max_user_connections
, plugin
, authentication_string
, password_expired
, is_role
, default_role
, max_statement_time
) VALUES (‘127.0.0.1’, ‘root’, ‘*F6719020B50FF8AAA6C8206E9674E82FA2A86083’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘’, ‘0’, ‘0’, ‘0’, ‘0’, ‘’, ‘’, ‘N’, ‘N’, ‘’, ‘0.000000’)
结果一执行,报错如下:
#1364 - Field ‘ssl_cipher’ doesn’t have a default value
查看user表结构
发现ssl_cipher、x509_issuer、x509_subject非空且没赋默认值,而复制出来的SQL并没有对这三个字段进行出来。
二、解决方法如下:
1.使用GRANT语句(也是网上大部分文章所写的)
GRANT USAGE ON . TO ‘user’@‘host’ IDENTIFIED BY PASSWORD ‘password’;
(将user、host、password替换成实际的)
GRANT ALL PRIVILEGES ON user
.* TO ‘user’@‘host’;
(赋权)
FLUSH PRIVILEGES;
2. 对SQL语句中ssl_cipher、x509_issuer、x509_subject进行处理
INSERT INTO user
(Host
, User
, Password
, Select_priv
, Insert_priv
, Update_priv
, Delete_priv
, Create_priv
, Drop_priv
, Reload_priv
, Shutdown_priv
, Process_priv
, File_priv
, Grant_priv
, References_priv
, Index_priv
, Alter_priv
, Show_db_priv
, Super_priv
, Create_tmp_table_priv
, Lock_tables_priv
, Execute_priv
, Repl_slave_priv
, Repl_client_priv
, Create_view_priv
, Show_view_priv
, Create_routine_priv
, Alter_routine_priv
, Create_user_priv
, Event_priv
, Trigger_priv
, Create_tablespace_priv
, ssl_type
, ssl_cipher
, x509_issuer
, x509_subject
, max_questions
, max_updates
, max_connections
, max_user_connections
, plugin
, authentication_string
, password_expired
, is_role
, default_role
, max_statement_time
) VALUES
(‘192.168.1.1’, ‘root’, ‘*F6719020B50FF8AAA6C8206E9674E82FA2A86083’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘’, ‘’, ‘’, ‘’, 0, 0, 0, 0, ‘’, ‘’, ‘N’, ‘N’, ‘’, ‘0.000000’);
即加入这三项并不赋值(’'两个单引号占位)。
3.修改sql_mode
修改sql_mode的方法请参考我的另一篇文章