我的Windows機器上運行着MySQL服務器,我想添加能夠從任何主機連接到它的用戶。爲了做到這一點我使用的語句MySQL:與主機有關的問題
CREATE USER「USER_NAME」 @「%」 IDENTIFIED BY「user_pw」
但是當我嘗試使用這個新的用戶連接本地,它失敗。現在我通過調用CREATE USER兩次解決了這個問題,第一次使用'%'作爲主機,第二次使用'localhost',但我想知道是否有另一個解決方案或某些選項需要在服務器上更改
我的Windows機器上運行着MySQL服務器,我想添加能夠從任何主機連接到它的用戶。爲了做到這一點我使用的語句MySQL:與主機有關的問題
CREATE USER「USER_NAME」 @「%」 IDENTIFIED BY「user_pw」
但是當我嘗試使用這個新的用戶連接本地,它失敗。現在我通過調用CREATE USER兩次解決了這個問題,第一次使用'%'作爲主機,第二次使用'localhost',但我想知道是否有另一個解決方案或某些選項需要在服務器上更改
來自here:
以root身份連接到服務器後,您可以添加新帳戶。下面的語句使用GRANT來設置四個新賬戶:
mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> WITH GRANT OPTION;
mysql> CREATE USER 'admin'@'localhost';
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> CREATE USER 'dummy'@'localhost';
其中兩個賬戶有蒙蒂的用戶名和some_pass的密碼。這兩個帳戶都是擁有完全權限的超級用戶帳戶。 只有從本地主機連接時才能使用'monty'@'localhost'帳戶。 'monty'@'%'帳戶在主機部分使用'%'通配符,因此可用於從任何主機進行連接。
有必要有兩個帳戶monty能夠從任何地方連接monty。如果沒有localhost帳戶,monty從本地主機連接時,由mysql_install_db創建的localhost的匿名用戶帳戶將優先。因此,monty將被視爲匿名用戶。原因是匿名用戶帳戶具有比'monty'@'%'帳戶更具體的主機列值,因此在用戶表排序順序中更早。 (第5.4.4節「訪問控制,第1階段:連接驗證」中討論了用戶表的排序。)
由於您是新手,我記得您應該[接受答案](http:// meta。 stackexchange.com/questions/5234/how-does-accepting-an-answer-work)如果你認爲它解決了(或幫助解決)你的問題 – Marco