解决mysql数据库创建用户报错Field 'ssl_cipher' doesn't have a default value

创建用户报错Field 'ssl_cipher' doesn't have a default value   

因为当时使用了这条语句直接插入用户表  insert into user (Host,user,authentication) values('%','zc','123');   

提示ssl_cipher没有默认值,可是又不知道ssl_cipher是个什么字段,怎么办呢???

 

解决方法:

1.版本更新后改变了插入用户表的语句, 应该用这个

create user 'zc'@'%' identified by '123';   //用户名为zc ,'%'表示所有ip都可访问,'123'为密码

2.再赋予权限

grant usage on *.* to 'zc'@'%' with grant option;

grant select,insert,update,delete,create,drop on *.* to 'zc'@'%' with grant option;        //给了zc账号 所有数据库中所有表的增删查改和建表删表的权限

flush privileges;    //释放 

 

这是创建用户后没赋予权限出现的报错:

mysql> select * from user \G;
ERROR 1142 (42000): SELECT command denied to user 'zc'@'localhost' for table 'user'
ERROR:

赋予权限之后就可以select了,赋权语句后面需要加上 with grant option 

 

posted @ 2019-04-13 12:37  m97i  阅读(4184)  评论(0编辑  收藏  举报