1.1创建mysql用户

mysql> create user test identified by \’test\’;

1.2为用户授权后面不加identified。

grant select on test.* to test@localhost;

 

1.3查看MYSQL数据库中所有用户
select distinct concat(\’User: \’\’\’,user,\’\’\’@\’\’\’,host,\’\’\’;\’) AS query FROM mysql.user;

or

select user,host  FROM mysql.user;

删除用户:

mysql>Delete FROM user Where User=\’test\’ and Host=\’localhost\’;

mysql>flush privileges;

mysql>drop database testDB; //删除用户的数据库

删除账户及权限:>drop user 用户名@\’%\’;

        >drop user 用户名@ localhost;

为用户授权:

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

  • 授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限):

   mysql>grant all privileges on testDB.* to test@localhost identified by \’1234\’;

  mysql>flush privileges;//刷新系统权限表

 

撤销某用户的某些权限

revoke select on test.* from test;

2.查看数据库中具体某个用户的权限
mysql>show grants for \’abcuser\’@\’localhost\’;

格式:show grants for \’用户名\’@\’登录主机\’;

or

mysql>show grants for abcuser@\’localhost\’;  // 用户名的引号可以省略

如果列表显示用户的权限如下:

mysql >select * from mysql.user where user=\’cactiuser\’ \G

 

3.查看user表结构 需要具体的项可结合表结构来查询
mysql> desc mysql.user;

 

显示数据表结构

mysql>describe 表名;

4.例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test1@”%” Identified by “abc”;

但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。

例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by “abc”;

 

如果你不想test2有密码,可以再打一个命令将密码消掉。

grant select,insert,update,delete on mydb.* to test2@localhost identified by “”;

5. 修改mysql的root密码

第一种︰使用 set password 語法

mysq>SET PASSWORD FOR \’root\’@\’localhost\’ = PASSWORD(\’newpass\’);

第二种 :

用UPDATE直接编辑user表

  mysql -u root

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD(\’newpass\’) WHERE user = \’root\’;

  mysql> FLUSH PRIVILEGES;

 

 

在丢失root密码的时候,可以这样

  mysqld_safe –skip-grant-tables&

  mysql -u root mysql

  mysql> UPDATE user SET password=PASSWORD(“new password”) WHERE user=\’root\’;

  mysql> FLUSH PRIVILEGES;

版权声明:本文为knight-zhou原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/knight-zhou/p/12067523.html