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創建用戶與授權方法