最初に言っておきますが、提案された質問の多くを検討しましたが、適切な回答が見つかりませんでした。これが私がやっていることです。
Amazon EC2 インスタンスに接続しています。次のコマンドを使用して MySQL root ユーザーにログインできます:
リーリー次に、ホスト %
で新しいユーザー請求書を作成しました。 リーリーユーザー bill にすべての権限を付与します:
リーリー次に、root ユーザーを終了し、bill ユーザーを使用してログインを試みます:
リーリー正しいパスワードを入力すると、次のエラーが発生します:
エラー 1045 (28000): ユーザー "bill"@"localhost" のアクセスが拒否されました (パスワードを使用: YES)
###試す:### リーリー
匿名ユーザー
''@'localhost'
または''@'127.0.0.1'
が存在する可能性があります。マニュアルによると:
したがって、このような匿名ユーザーは、localhost
から接続するときに、
'[any_username]'@'%'などの他のユーザーを「ブロック」します。
'bill'@'localhost'
推奨される解決策は、この匿名ユーザーを削除することです (通常、これは良い考えです)。
は
'bill'@'%'と一致しますが、(たとえば)
''@'localhost'# よりも前に一致します。 ##。以下の編集は主な質問とはほとんど無関係です。これらは、このスレッドの他のコメントで寄せられた質問の一部に答えるだけです。
ソケット経由で
'bill'@'%'として認証します。
編集 2リーリー
ネットワークを再アクティブ化し、匿名ユーザー
''@'localhost'を作成した点を除いて、まったく同じセットアップです。
編集 3リーリー
編集 2 と同じ状況で、匿名ユーザーのパスワードを指定します。
リーリー結論 1、編集 1 から:
'bill'@'%'の認証はソケット経由で可能です。
編集 2 からの結論 2: TCP 経由で接続するかソケット経由で接続するかは、認証プロセスには影響しません (
'something'@'localhost'any 以外のソケット経由で接続できないことを除けば)他のユーザー)。
結論 3、編集 3 より:
-ubillを指定したにもかかわらず、匿名ユーザーとしてアクセスが許可されました。これは、上で提案した「順序付けルール」によるものです。ほとんどのデフォルトのインストールでは、パスワードを持たない
匿名ユーザー
が存在することに注意してください (パスワードは保護または削除する必要があります)。