MySQL 指令將「@localhost」附加到使用者名

MySQL 指令將「@localhost」附加到使用者名

我似乎無法弄清楚這一點。

我想使用命令列連接到另一台伺服器上的 MySQL 資料庫。我繼續為用戶建立用戶名和密碼。我還授予該用戶該資料庫的所有權限。

當使用命令:時mysql -h <hostname> -u <username> -p,出現以下錯誤:

ERROR 1045 (28000): Access denied for user '<username>'@'<local_machine_hostname>' (using password: YES)

問題是它不斷將當前電腦的主機名稱附加到使用者名稱中。顯然,這user@<local_machine_hostname>是不正確的。

我輸入什麼並不重要。例如,如果我輸入:

mysql -h <hostname> -u '<username>'@'<hostname>' -p

它執行相同的操作,只是在錯誤輸出中顯示:

Access denied for user '<username>@<hostname>'@'<local_machine_hostname>'

設定檔中是否有允許發生這種情況的設定?這真的很煩。我需要設定一個 tikiwiki 伺服器,但它無法連接,因為在設定 mysql 的步驟中,它不斷將本機電腦的主機名稱附加到 mysql 登入名稱。

答案1

MySQL的權限是基於主機的。當您建立使用者(或授予使用者)時,您需要提供主機名稱。它可以是“%”或“localhost”或任何其他 IP 或主機名稱。這是一項安全功能。你希望這發生。當它告訴您存取被拒絕時,它並不是將主機名稱「附加」到使用者名稱上。每個都儲存在 mysql.users 表的不同欄位中。如果您希望能夠以該使用者的身分從您的電腦登入 MySQL,您需要從您的電腦授予該使用者存取權限...

來自關於建立使用者的 MySQL 文檔:

每個帳戶都使用與 GRANT 語句相同的格式命名;例如,“jeffrey”@“localhost”。如果僅指定帳戶名稱的使用者名稱部分,則使用主機名稱部分「%」。有關指定帳戶名稱的其他信息,請參閱第 12.4.1.3 節「GRANT 語法」。

答案2

前往 mysql wworkbannch 並輸入代碼

更改使用者 更改使用者 'root'@'localhost' 透過 mysql_native_password 識別為 '123';

相關內容