盒子
盒子

MySQL 一种插入用户方法的错误

在早期的mysql版本中可以用

1
inert into user(host, user, password, select_priv, insert_priv, update_priv) values('localhost', 'guest', password('pass'), 'Y', 'Y', 'Y');

但是在5.0之后的版本的MySQL中,这个语法会报错的 错误内容如下

1
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value

简单来说也就是这个ssl_cipher没有默认值,而你的插入语句又没有为该值指定一个默认值,所以这样是错误的。

在官方网站上http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_ssl_cipher, 我们可以发现是从5.0引入的该变量,但是官方也没有给我们一些默认值的信息,所以我们只能采取一种曲线救国的方法。

既然不能插入一条数据,但是我们的目的是添加用户,所以就可以直接用添加用户的命令。

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

这样就ok了。