mysql 用户权限配置(mysql.user表的设置)

mysql的用户权限,是在mysql.user表中控制的。

我们登录mysql的命令的一般格式是:mysql -uroot -p123456 -h192.168.1.180

查看mysql.user的表结构,如图:

mysql 用户权限配置(mysql.user表的设置)_第1张图片

可见,其中的Host,User,Password就是我们登录时候需要输入的参数,列名为*_priv的列对应的是增、删、改、建表、删表、、、等权限。

mysql 用户权限配置(mysql.user表的设置)_第2张图片

这是我的 mysql 权限配置信息,其中,host支持 IP/子网掩码的计算规则以及正则匹配,当然,password是密文。


mysql的用户权限配置有两种方法,

1、直接往user表插数据(flush privileges;(执行该语句或重启MySQL后生效)),

      eg:insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));

2、使用grant命令(flush privileges;(执行该语句或重启MySQL后生效)),

     格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";

      eg:grant all privileges on *.* to test_1@localhost identified by "123456";

grant命令,如果不是root用户,应该会有以下报错:


报错提示:执行该命令的权限不足。。。去user表中查看:

mysql 用户权限配置(mysql.user表的设置)_第3张图片

把Grant_priv修改为‘Y’即可(flush privileges;(执行该语句或重启MySQL后生效)),update mysql.user set  Grant_priv='Y' where user='ptmind';


附:

登录mysql命令的一般格式为:mysql -uroot -p123456 -h192.168.1.180

但有的mysql使用 ‘mysql -uroot -p123456’ 或者 ‘mysql’ 就可登录,要怎么配置呢?

未完待续、、、、





你可能感兴趣的:(mysql 用户权限配置(mysql.user表的设置))