我正在嘗試使用命令連接到 mysql
mysql -h 127.0.0.1
它出現了錯誤
ERROR 1045 (28000): Access denied for user 'root'@'mydomain.com' (using password: NO)
為什麼 127.0.0.1 會被轉換成我的網域?
但是,如果我不指定主機(並且通過擴展,如果指定了“localhost”),它確實可以工作。
編輯: 好像使用TCP時解析為域名,所以使用時也失敗
mysql -h localhost --protocol=TCP
編輯2:當我使用skip-name-resolve時,我得到類似的輸出,除了mydomain.com
替換為x.x.x.x
which is the public IP mydomain.com
。
答案1
我偽裝了所有外部資料包(包括 lo)。刪除/編輯iptable -t nat POSTROUTING
規則解決了該問題。
答案2
這很可能是由主機文件條目引起的。
答案3
也許mysql只監聽你的公共IP而不是0.0.0.0?
答案4
1) 檢查 /etc/hosts 並確保 127.0.0.1 僅指向 localhost 而不是 mydomain.com。 mydomain.com 應與伺服器的實際 IP 位址關聯,而不是與 localhost.localdomain 關聯。
2)看起來你已經在你的mysql實例上設定了root的密碼(其實這是一件好事)。建議將“-p”開關新增到您的登入名稱中,使其看起來像:
mysql -h 本機 -p
然後系統會要求您輸入 root 的密碼。希望這可以幫助。