コマンドを使用して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 を使用すると、 が のパブリック IPmydomain.com
に置き換えられることを除いて、同様の出力が得られます。x.x.x.x
mydomain.com
答え1
すべての外部パケット(LO を含む)をマスカレードしていました。iptable -t nat POSTROUTING
ルールを削除/編集すると、問題は解決しました。
答え2
おそらく、これは hosts ファイルのエントリによって発生します。
答え3
おそらく、mysql は 0.0.0.0 ではなくパブリック IP のみをリッスンしているのではないでしょうか。
答え4
1) /etc/hosts をチェックして、127.0.0.1 が mydomain.com ではなく localhost のみを指していることを確認します。mydomain.com は、localhost.localdomain ではなく、サーバーの実際の IP アドレスに関連付けられている必要があります。
2) また、mysql インスタンスで root のパスワードを設定したようです (実際、これは良いことです)。ログインに「-p」スイッチを追加して、次のようにすることをお勧めします。
mysql -h ローカルホスト -p
次に、root のパスワードを入力するよう求められます。お役に立てば幸いです。