MySQL默認只允許用戶本地登錄,需要遠程連接可進行如下操作:
允許root用戶在任何地方進行遠程登錄,並具有所有庫任何操作權限:
使用root用戶登錄mysql:
mysql -u root -p"youpassword"
授權:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
重載授權表:
FLUSH PRIVILEGES;
退出MySQL數據庫:
exit;
允許root用戶在一個特定IP進行遠程登錄,並具有所有庫任何操作權限:
使用root用戶登錄MySQL:
mysql -u root -p"youpassword"
授權:
GRANT ALL PRIVILEGES ON *.* TO root@"172.16.16.152" IDENTIFIED BY "youpassword" WITH GRANT OPTION;
重載授權表:
FLUSH PRIVILEGES;
退出MySQL數據庫:
exit;
允許root用戶在一個特定的IP進行遠程登錄,並具有所有庫特定操作權限:
使用root用戶登錄MySQL:
mysql -u root -p"youpassword"
授權:
GRANT select,insert,update,delete ON *.* TO root@"172.16.16.152" IDENTIFIED BY "youpassword";
重載授權表:
FLUSH PRIVILEGES;
退出mysql數據庫:
exit;
刪除用戶授權,需要使用REVOKE命令:
REVOKE privileges ON 數據庫[.表名] FROM user-name;
使用root用戶登錄MySQL:
mysql -u root -p"youpassword"
授權:
GRANT select,insert,update,delete ON TEST-DB TO test-user@"172.16.16.152" IDENTIFIED BY "youpassword";
進行刪除授權操作:
REVOKE all on TEST-DB from test-user;
****注:該操作只是清除了用戶對於TEST-DB的相關授權權限,但是這個“test-user”這個用戶還是存在。
從用戶表內清除用戶:
DELETE FROM user WHERE user="test-user";
重載授權表:
FLUSH PRIVILEGES;
退出mysql數據庫:
exit;
MYSQL權限詳細分類
全局管理權限:
FILE: 在MySQL服務器上讀寫文件。
PROCESS: 顯示或殺死屬於其它用戶的服務線程。
RELOAD: 重載訪問控制表,刷新日志等。
SHUTDOWN: 關閉MySQL服務。
數據庫/數據表/數據列權限:
ALTER: 修改已存在的數據表(例如增加/刪除列)和索引。
CREATE: 建立新的數據庫或數據表。
DELETE: 刪除表的記錄。
DROP: 刪除數據表或數據庫。
INDEX: 建立或刪除索引。
INSERT: 增加表的記錄。
SELECT: 顯示/搜索表的記錄。
UPDATE: 修改表中已存在的記錄。
特別的權限:
ALL: 允許做任何事(和root一樣)。
USAGE: 只允許登錄--其它什么也不允許做。