1. 常用操作
1 # 进入mysql数据库 2 use mysql; 3 4 # 创建用户,ip填'%'表示允许所有ip 5 create user 'username'@'ip' IDENTIFIED by 'password'; 6 7 # 允许远程客户端通过密码访问 8 alter user 'username'@'ip' IDENTIFIED WITH mysql_native_password by 'password'; 9 10 # 直接创建能够通过远程客户端访问的账户 11 create user 'username'@'ip' IDENTIFIED WITH mysql_native_password by 'password'; 12 13 # 删除用户 14 drop user 'username'@'ip'; 15 # 删除以后要刷新权限 16 FLUSH PRIVILEGES; 17 18 # 修改用户 19 rename user 'username'@'ip' to 'new_username'@'new_ip'; 20 21 # 修改密码 22 set password for 'username'@'ip'='new_password'; 23 24 # 查看权限 25 show GRANTS; 26 # 查看指定用户权限 27 show GRANTS for 'username'@'ip'; 28 29 # 授予部分权限,db和table填*表示所有 30 grant SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX, CREATE VIEW, SHOW VIEW, CREATE TEMPORARY TABLES on dbname.tablename to 'username'@'ip'; 31 32 # 授予所有权限, 33 grant ALL PRIVILEGES on dbname.tablename to 'username'@'ip'; 34 35 # 撤销授权 36 revoke all on *.* from 'username'@'ip'; 37 38 # 可以搭配"用户-角色-权限"使用,这个交给DBA处理吧=_=
2. 常见问题
a. 创建用户时报错 [Err] 1396 - Operation CREATE USER failed for 'username'@'ip' 解决方法
可能原因:
1. 用户已存在;
2. 使用delete语句删除用户后没有刷新权限;
3. 用户不存在,但是存在该用户的权限信息。
解决步骤:
1. 创建过用户,查询后发现无此用户:
执行 FLUSH PRIVILEGES; 语句后,重新执行创建语句
2. 如果还是报错:
执行 drop user 'username'@'ip';
然后执行 FLUSH PRIVILEGES;
然后再执行创建语句
参考文章:
-- 创建&授权
https://www.cnblogs.com/zhaohaiyu/p/11459613.html mysql创建用户和权限管理
-- 撤销权限
https://www.cnblogs.com/qlqwjy/p/8022575.html MySql授权和撤销权限操作
-- 删除用户
https://blog.csdn.net/asty9000/article/details/80945631 mysql创建用户报错[Err] 1396 - Operation CREATE USER failed for 'test'@'%'的解决方法
-- 权限说明
https://www.cnblogs.com/yingsong/p/9718426.html 【转载整理】mysql权限分配详解
https://www.jb51.net/article/31850.htm MySQL创建用户与授权方法