新建用戶mysql
使用以下命令建立一個用戶名和密碼分別爲"myuser"和"mypassword"的用戶,localhost在User表裏是Host字段(主機)。sql
mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';數據庫
註釋:一旦用戶被建立後,包括加密的密碼、權限和資源限制在內的全部賬號細節都會被存儲在一個名爲user的表中,這個表則存在於mysql這個特殊的數據庫裏ide
賦予MySQL用戶權限
一個新建的MySQL用戶沒有任何訪問權限,這就意味着你不能在MySQL數據庫中進行任何操做。你得賦予用戶必要的權限。如下是一些可用的權限:加密
ALL: 全部可用的權限spa
CREATE: 建立庫、表和索引索引
LOCK_TABLES: 鎖定表資源
ALTER: 修改表io
DELETE: 刪除表table
INSERT: 插入表或列
SELECT: 檢索表或列的數據
CREATE_VIEW: 建立視圖
SHOW_DATABASES: 列出數據庫
DROP: 刪除庫、表和視圖
運行如下命令賦予"myuser"用戶特定權限
mysql> GRANT <privileges> ON <database>.<table> TO 'myuser'@'localhost';
以上命令中,<privileges> 表明着用逗號分隔的權限列表。若是你想要將權限賦予任意數據庫(或表),那麼使用星號(*)來代替數據庫(或表)的名字。
例如,爲全部數據庫/表賦予 CREATE 和 INSERT 權限:
mysql> GRANT CREATE, INSERT ON *.* TO 'myuser'@'localhost';
將所有的權限賦予全部數據庫/表:
mysql> GRANT ALL ON *.* TO 'myuser'@'localhost';
你也能夠將用戶現有的權限刪除。使用如下命令廢除"myuser"賬號的現有權限:
mysql> REVOKE <privileges> ON <database>.<table> FROM 'myuser'@'localhost';
驗證給用戶賦予的全權限:
mysql> SHOW GRANTS FOR 'myuser'@'localhost';
//設置用戶admin,密碼1111,能夠在任何地方訪問
grant all on 數據庫.* to 用戶名@登陸主機 identified by "密碼"
grant all on upload_file.* to 'admin'@'% ' IDENTIFIED BY '1111';
flush privileges;
異常處理
一、mysql> CREATE USER 'admin'@"%" IDENTIFIED BY '1111';
ERROR 1396 (HY000): Operation CREATE USER failed for 'admin'@'%'
創建新用戶的時候,報錯,多是由於已經建立過這樣的用戶,未刪除乾淨
//刷新權限表
flush privileges;
若是仍是不行報錯ERROR 1396 (HY000): Operation CREATE USER failed for ‘test’@’%’
再刪除一次:
drop user 'admin'@'%';
flush privileges;