连接MySQL
mysql -uroot -p
选择数据库
use mysql;
允许root远程连接
update user set host='%' where user='root';
##8.0有遇到第一次会报错,再重复运行一次即可。
grant all privileges on *.* to 'root'@'%' ;
–记得最后刷新权限
查看所有用户
select user,host from mysql.user;
创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
-
username:用户名
-
host:指定该用户在哪个主机上可以登陆,本地用户可用localhost,任意远程主机登陆可以使用通配符%
-
password:该用户的登陆密码,密码可以为空.
示例:
创建账户:guest 密码:123456 允许任意连接方式连接
CREATE USER 'guest'@'%' IDENTIFIED BY '123456';
CREATE USER 'admin'@'%' IDENTIFIED BY 'aabbcc123';
授权
GRANT privileges ON databasename.tablename TO 'username'@'host';
-
privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,授予所的权限则使用ALL
-
databasename:数据库名
-
tablename:表名
注:
如果要授予该用户对所有数据库和表的相应操作权限则可用*.*
示例:
GRANT ALL ON test.* TO 'guest'@'%';
GRANT ALL ON *.* TO 'admin'@'%';
设置与更改用户密码
use mysql
ALTER USER "root"@"localhost" IDENTIFIED BY "你的新密码";
撤销用户权限
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
privilege, databasename, tablename:同上面授权部分
注意:
假如你在给用户’pig’@‘%‘授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO ‘pig’@’%’,则在使用REVOKE SELECT ON . FROM ‘pig’@‘%’;命令并不能撤销该用户对test数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON . TO ‘pig’@‘%’;则REVOKE SELECT ON test.user FROM ‘pig’@‘%’;命令也不能撤销该用户对test数据库中user表的Select权限。
具体信息可以用命令SHOW GRANTS FOR ‘pig’@‘%’; 查看。
删除用户
DROP USER 'username'@'host';
刷新权限
FLUSH PRIVILEGES;