直接添加用户时会报错
mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
mysql>
原因是user表中的其他字段没有赋值。
解决办法:
mysql> create user test; 先直接用create创建用户,但这样创建的用户没有密码。
通过下面的语句设置密码
mysql> update user set Password=PASSWORD("1234") where User='test';
设置好之后,记得调用下面的语句刷新权限:
mysql> flush privileges;
此时用数据库连接工具连接时,看不到数据库,此时需要给用户相应的数据库权限
grant 权限 on 数据库对象 to 用户
grant
select
on
mysql.
*
to
test@
'
%
'
grant insert on mysql. * to test@ ' % '
grant update on mysql. * to test@ ' % '
grant delete on mysql. * to test@ ' % '
grant insert on mysql. * to test@ ' % '
grant update on mysql. * to test@ ' % '
grant delete on mysql. * to test@ ' % '
或者,用一条 MySQL 命令来替代:
grant
select
,
insert
,
update
,
delete
on
mysql.
*
to
test@
'
%
'
或者
grant all on mysql.* to test@'%'
设置好之后,记得调用下面的语句刷新权限:
mysql> flush privileges;