[MySQL]关于Field 'ssl_cipher' doesn't have a default value和授权语句的说明

原因:

关于该的错误原因是MySQL默认指定了严格模式,为了安全,严格模式禁止通过insert 这种形式直接修改mysql库中的user表进行添加新用户.

解决办法:

第一种:

找到MySQL的配置文件my.cnf,从里面找到这样一句话:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

STRICT_TRANS_TABLES是严格模式的意思,自需要将这段删除就可以使用Insert进行插入了,即改为:

sql_mode=NO_ENGINE_SUBSTITUTION

然后重启MySQL即可.

注意:MySQL之所以默认指定严格模式是为了保证安全,所以不推荐使用该方式进行修改.

第二种:

grant usage on *.* to 'username'@'hostname' identified by 'password' with grant option;  //添加用户

grant all privileges on *.* to 'username'@'hostname' identified by 'password';  //添加权限

flush privileges; //更新权限
 

关于授权语句:

用户权限命令格式为:

GRANT privileges ON databasename.tablename TO 'username'@'host' [IDENTIFIED BY [PASSWORD] 'password'] [WITH with_option]

privileges -

用户的操作权限,如SELECT , INSERT , UPDATE 等.如果要授予所有的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

with_option

  • GRANT OPTION:允许用户再将该权限授予其它用户;
  • MAX_QUERIES_PER_HOUR:允许用户每小时执行的查询语句数量;
  • MAX_UPDATES_PER_HOUR:允许用户每小时执行的更新语句数量;
  • MAX_CONNECTIONS_PER_HOUR:允许用户每小时连接的次数;
  • MAX_USER_CONNECTIONS:允许用户同时连接服务器的数量;

GRANT授权命令有很多更详细的使用,如果想详细了解可以查看:

https://blog.csdn.net/wulantian/article/details/38230635

https://www.cnblogs.com/xd502djj/p/3548283.html

这俩位的GRANT总结.

为了防止忘记,特地记下.

猜你喜欢

转载自blog.csdn.net/ass_iss_ion/article/details/85836688
今日推荐