查看用户:
如果进入了mysql库:SELECT *FROM USER;
没有进入mysql库内:SELECT *FROM mysql.USER;
创建用户:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
参数解析
- host:可以是具体的IP,也可以用通配符 “%” 来指定任何IP
授予权限:
GRANT privileges ON dbname.tablename TO 'username'@'host';
-- 刷新权限
FLUSH PRIVILEGES;
- privileges:值可以是select , insert, update, create, drop等,如果要授予所的权限则用ALL
- dbname:数据库名
- tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
撤销权限:
REVOKE privilege ON dbname.tablename FROM 'username'@'host';
-- 刷新权限
FLUSH PRIVILEGES;
- privilege :赋予的权限
- dbname:数据库名
- tablename :表名
删除用户:
DROP USER 'username'@'host';
修改密码:
修改密码有多种方式:
- 修改当前用户的密码(最简单的方式)
-- 修改当前用户的密码
SET PASSWORD=PASSWORD('111');
- 修改指定用户密码(当前用户也可以只用)
-- 修改指定用户的密码
SET PASSWORD FOR 'pwdManager'@'%' = PASSWORD('123456');
- 修改authentication_string字段
-- mysql57版本的修改密码方式(会产生一个警告)
UPDATE MySQL.user SET authentication_string=PASSWORD('1234') WHERE USER='pwdManager'
-- 必须进行刷新操作,否则新密码不生效
FLUSH PRIVILEGES;
通常都是在安装MySQL5.7的时候使用最后一种修改密码方式
在安装的时候如果没有更改密码,后来通过免密码登录的方式更改密码,输入update mysql.user set password=password('root') where user='root'
时会提示一个错误:ERROR 1054 (42S22): Unknown column 'password' in 'field list'
原来是mysql数据库下已经没有password这个字段了,password字段改成了authentication_string,所以更改语句替换为update MySQL.user set authentication_string=password('root') where user='root';
即可