[解決済み] MySQL ERROR 1045 (28000)。ユーザー 'bill'@'localhost' (使用パスワード: YES)のアクセスが拒否されました。
質問
まず最初に、私は多くの提案された質問に目を通しましたが、関連する回答が見つからなかったことをお伝えします。以下は、私がやっていることです。
Amazon EC2インスタンスに接続しています。このコマンドでMySQLのrootでログインできる。
mysql -u root -p
次に、新しいユーザー法案をホスト % で作成しました。
CREATE USER 'bill'@'%' IDENTIFIED BY 'passpass';
ユーザーbillにすべての権限を付与します。
grant all privileges on *.* to 'bill'@'%' with grant option;
そして、rootユーザーから終了し、billでログインしてみる。
mysql -u bill -p
が正しいパスワードを入力したのに、このようなエラーが発生しました。
エラー 1045 (28000)。ユーザー 'bill'@'localhost' (使用パスワード: YES)のアクセスが拒否されました。
解決方法は?
匿名ユーザーである可能性が高い
''@'localhost'
または
''@'127.0.0.1'
.
のとおりです。 マニュアル :
複数のマッチングが可能な場合、サーバーはそのうちのどれにマッチするかを決定しなければなりません。 を使用する。この問題を次のように解決している。(...)
- クライアントが接続しようとすると、サーバーは以下の行を調べます。 [テーブルmysql.userの] をソート順に表示します。
- サーバーは、クライアントのホスト名とユーザー名に一致する最初の行を使用します。
(...) を持つ行を順番に並べるソート規則を使用します。 最も特殊なHostの値を最初に指定する . 文字通りのホスト名 [「localhost」のような] とIPアドレスは、最も具体的なものです。
したがって、このような匿名ユーザーは、以下のように他のユーザーをマスクすることになります。
'[any_username]'@'%'
から接続する場合
localhost
.
'bill'@'localhost'
が一致します。
'bill'@'%'
にマッチするが、(例)
''@'localhost'
ビフォアハンド
推奨される解決策は、この匿名ユーザーを削除することです(これは通常、いずれにしても良いことです)。
以下の編集は、主な質問とほとんど無関係です。これらは、このスレッド内の他のコメントで提起されたいくつかの質問に答えることを意図しているだけです。
編集1
として認証する
'bill'@'%'
をソケット経由で送信します。
root@myhost:/home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -ppass --socket=/tmp/mysql-5.5.sock MySQLモニターへようこそ(...) mysql> SELECT user, host FROM mysql.user; +------+-----------+ | ユーザ名|ホスト名 +------+-----------+ | 法案|%||。 | ルート|127.0.0.1|||。 | ルート|::1|::2|::3|::4|::5|::6 | ルート|ローカルホスト +------+-----------+ セットで4行 (0.00秒) mysql> SELECT USER(), CURRENT_USER(); +----------------+----------------+ | user() | current_user() | (英語版のみ +----------------+----------------+ | bill@localhost | bill@%|です。 +----------------+----------------+ セットで1行 (0.02秒) mysql> SHOW VARIABLES LIKE 'skip_networking'; +-----------------+-------+ | 変数名 | 値 +-----------------+-------+ | skip_networking | ON +-----------------+-------+ セットで1行 (0.00秒)
編集2
全く同じ設定ですが、ネットワークを再アクティブ化したことと、匿名ユーザーを作成したことが異なります。
''@'localhost'
.
root@myhost:/home/mysql-5.5.16-linux2.6-x86_64# ./mysql MySQLのモニターへようこそ(...) mysql> CREATE USER ''@'localhost' IDENTIFIED BY 'anotherpass'; クエリ OK、0 行が影響を受けました (0.00 秒) mysql> バイバイ root@myhost:/home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -ppass \. -socket=/tmp/mysql-5.5.sock。 エラー 1045 (28000)。ユーザー 'bill'@'localhost' (使用パスワード: YES) のアクセスが拒否されました。 root@myhost:/home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -ppass \. -h127.0.0.1 --protocol=TCP エラー 1045 (28000)。ユーザー 'bill'@'localhost' (使用パスワード: YES) のアクセスが拒否されました。 root@myhost:/home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -ppass \. -hlocalhost --protocol=TCP エラー 1045 (28000)。ユーザー 'bill'@'localhost' (使用パスワード: YES) のアクセスが拒否されました。
編集3
編集2と同じ状況で、今度は匿名ユーザーのパスワードを提供します。
root@myhost:/home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -panotherpass -hlocalhost MySQLのモニターへようこそ(...) mysql> SELECT USER(), CURRENT_USER(); +----------------+----------------+ | user() | current_user() | (※)(※)(※)(※)。 +----------------+----------------+ | bill@localhost|@localhost|。 +----------------+----------------+ セットで1行 (0.01秒)
結論 1、編集 1 より: 次のように認証することができます。
'bill'@'%'
をソケット経由で使用することができます。
結論2、編集2より:TCPで接続しても、ソケットで接続しても、認証プロセスには何の影響もありません。
'something'@'localhost'
ソケットを使用した場合、当然ですが)。
結論3、編集3より:私は
-ubill
匿名ユーザーでアクセスできるようになりました。これは、上記でアドバイスした「ソートルール」のためです。ほとんどのデフォルトのインストールでは、に注意してください。
パスワードなしの匿名ユーザーが存在する
(そして、安全性を確保/削除する必要があります)。
関連
-
MySQLはこのようなUpdateステートメントを書くべきではありません
-
MySQLで正規表現を使う 詳細
-
MySQLインストールチュートリアル(Linux版
-
'INSERT文はFOREIGN KEY制約「FK_TourismReservation_Users」と競合していました。その
-
[解決済み] ユーザー 'root'@'localhost' (パスワード: YES を使用) のアクセス拒否 - 特権がない?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] エラー 1698 (28000)。ユーザー 'root'@'localhost' のアクセスが拒否されました。
-
[解決済み】macOSでbrew install mysqlをする。
-
[解決済み] ERROR 1045 (28000): ユーザー 'root'@'localhost' (使用パスワード:YES) のアクセスが拒否されました。
-
[解決済み] ユーザー 'root'@'localhost' に権限を付与しようとしたところ、アクセスが拒否されました。どのようにすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mysqlでインデックスに障害が発生する原因は何ですか?
-
MySQLデータ型の詳細
-
MySQLインデックスベースストレステストの実装
-
[解決済み】ValueError: 値の長さがインデックスの長さと一致しない|Pandas DataFrame.unique()
-
[解決済み] [GROUP BY句に含まれるか、集約関数で使用される必要があります。
-
[解決済み】マルチパート識別子をバインドできない
-
[解決済み] SQLエラー。ORA-01861:リテラルは、フォーマット文字列01861に一致しません。
-
SQL Server のトランザクションは、try キャッチに記述しなければ、中間ステートメントがエラーを報告してもコミットされます。
-
[解決済み] Mysqlでidを使用してテーブルから多くの行を削除する
-
[解決済み] MySQL で特定のカラム名を持つすべてのテーブルを見つけるにはどうすればよいですか?