Mysql爲了安全性,在默認情況下用戶只允許在本地登錄,可是在有此情況下,還是需要使用用戶進行遠程連接,因此爲了使其可以遠程需要進行如下操作:
一、允許root用戶在任何地方進行遠程登錄,並具有所有庫任何操作權限,具體操作如下:
在本機先使用root用戶登錄mysql:
mysql
-u root -p
"youpassword"
進行授權操作:
mysql>GRANT
ALL PRIVILEGES ON *.* TO
'root'
@
'%'
IDENTIFIED
BY
'youpassword'
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;
具體實例,先在本機登錄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:
只允許登錄--其它什麼也不允許做。