# 创建用户并授权时,必须登录数据中的root账户 # 数据库名.*:表示对该数据库下所有的数据表拥有这样的权限 # 多个用户权限之间用,隔开,如select, insert grant 权限列表 on 数据库名.* to '用户名'@'主机名' identified by '密码'; # 例如给用户wuxiang添加本地登录的访问权限,使该账户只能拥有对数据库shuai中test表的读权限 grant select on shuai.test to "wuxiang"@"主机名" identified by "密码"; # 如果要给创建的用户赋予所有的权限,则使用:all privileges grant all privileges on shuai.test to "wuxiang"@"主机名" identified by "密码";
# 向已创建的用户追加新的权限,修改完以后需要刷新以下权限 grant 新的权限 on 数据库.* to '用户名'@'主机名' with grant option; # 刷新权限 flush privileges;
# 查看用户的权限信息 show grants for 'test'@'localhost';
# 取消用户的某个权限 revoke select on 数据库.* from 'test'@'localhost'
# 设置用户无访问对某个数据库中数据无访问权限 GRANT USAGE ON `majiang`.`t_users` TO `test`@`localhost` WITH GRANT OPTION
修改密码
1 2 3 4 5 6 7 8 9 10
# (方法使用8.0以前的版本)修改用户密码需要root用户登录,使用的表是mysql数据库中的user表 use mysql; update user set authentication_string=password('新密码') where user='用户名' and host='用户host'; # 修改完密码后需要刷新权限 flush privileges;
# 8.0以后版本的mysql数据库修改 use mysql alter user 'root'@'localhost' identified with mysql_native_password by 'qwer1234'; flush privileges
远程登录
1 2 3 4 5 6 7 8
# 修改配置文件:/etc/mysql/mysql.cnf.d/mysqld.cnf,注释配置文件中的bind-addr # 修改远程用户的登录方式为% update user set host = '%' where user = '用户名'; # 重启mysql服务 service mysql restart
# 然后远程登录 mysql -u用户名 -p密码 -hIP地址
删除用户
1 2 3 4 5 6 7 8
# 利用drop删除(推荐),需要登录数据库root账户 drop user '用户名'@'主机';
# 利用delete删除(推荐方法失败时使用) delete from user where user="用户名";