從 2 台不同的機器連接到 mySQL
全部,
是否可以修改 MySQL DB 的權限,或者我需要撤銷它並再次授予它?
我的問題如下:
我在 Gentoo Linux 上執行 MySQL 伺服器,我正在嘗試從 2 台不同的 Windows 機器遠端連接(所有電腦都在我家的同一個網路上)。
當我無法連接時,我在 Gentoo 論壇上問了一個問題,並得到了一個執行建議:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION ;
我的猜測是我使用了其中一台機器的靜態 IP 地址,因為我可以從一台 Windows 機器連接,但不能從另一台機器連接。
所以現在,我的問題是 - 是否可以發出類似的問題:
ALTER PRIVILEGES ON.....;
或者也許我可以做一些查詢來解決這個問題?
謝謝你。
順便說一句,有點離題:我找不到“遠端訪問”的標籤。有人可以創建它嗎?或者它不存在是有原因的?
編輯:
我實際上希望權限是這樣的:
GRANT ALL ON foo.* TO bar@'192.168.1.x' IDENTIFIED BY 'PASSWORD';
這樣我只能從 192.168.1.1 - 192.168.1.254 連接。我不需要這個伺服器是公開可用的。
編輯2:
GRANT USAGE ON *.* TO 'root'@'192.168.1.4' IDENTIFIED BY PASSWORD '*DC365D603F605E79DE2F2B8DA969DBB8497BEC89' GRANT ALL PRIVILEGES ON `draft`.* TO 'root'@'192.168.1.4' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*DC365D603F605E79DE2F2B8DA969DBB8497BEC89' WITH GRANT OPTION GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
編輯3:
我只是嘗試執行以下命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@192.168.1.% IDENTIFIED BY '<my_password>' WITH GRANT OPTION;
我得到以下回复:
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '% IDENTIFIED BY '<my_password>'' at line 1 0.00041 sec
所以你可以做什麼:
- 如果要將 IP 從 192.168.1.4 更改為 192.168.1.3,則可以更新 mysql.user 表
更新 mysql.user set host =’ 192.168.1.3 where host=‘192.168.1.3’ ;
刷新權限:
您不能在創建使用者的單個查詢中定義主機名範圍。您需要為不同的 IP 創建相同的使用者,或者您可以將 % 作為主機名,但我不建議這樣做
- 如果您想要不同的使用者,請創建具有所需 IP 的相同使用者。
讓我知道是否需要更清楚
編輯
您不能在 mysql.user 表中定義主機名範圍。為此,您可以創建具有相同角色但在不同 IP 上的相同使用者。您必須為每個 IP 單獨執行此操作。
更新
請嘗試創建使用者:
將選擇授予 db 上的 ‘root’@‘192.168.1.%’。* 由 ‘pass’ 標識;
更新 2
這是因為 IP 應該作為字元串放在 ’’ 之間。
所以你去:
將 db_name.table_name 上的所有權限授予 ‘root’@‘192.168.1.%’ IDENTIFIED BY ’’ WITH GRANT OPTION;