標籤:sage create 修改 資料庫mysql 刪除索引 存取控制 info 登入 資料庫
好記性不如爛筆頭,記錄一下。
安裝了MySQL預設是拒絕遠端連線的。
首先進入資料庫,使用系統資料庫mysql。
1 mysql -u root -p mysql #斷行符號,然後輸入則使用了系統資料庫
接著對系統資料庫的root賬戶設定遠端存取的密碼,與本地的root訪問密碼並不衝突。
1 grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘123456‘ with grant option; #123456為你需要設定的密碼
防火牆設定一下,不然3306連接埠還是無法訪問。
1 iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
設定完之後,查看一下是否能通過。
1 iptables -L -n
如果想要限制訪問。
iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
OK,這樣就可以遠端存取了。
二、允許root使用者在一個特定的IP進行遠程登入,並具有所有庫任何操作許可權,具體操作如下:
在本機先使用root使用者登入mysql:
mysql -u root -p"youpassword"
進行授權操作:
GRANT ALL PRIVILEGES ON *.* TO [email protected]"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 [email protected]"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 [email protected]"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: 只允許登入--其它什麼也不允許做。
CentOS 設定mysql的遠端存取