web-dev-qa-db-ja.com

mysqlで作成されたユーザーでログインできません

このコマンドを使用する

GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';

私はログインしようとします:

 mysql -u brian -ppassword

エラーは次のとおりです。

ERROR 1045 (28000): Access denied for user 'brian'@'localhost' (using password: YES)

私はこれをルートとしてやっており、特権をフラッシュしようとしました。

私はこれを無数のユーザーで試しましたが、うまくいかないようです。パスワードなしでユーザーを作成でき、ログインできます。コマンドラインおよびphpmyadminから

また、ユーザーがmysql.userにあったかどうかを確認します。

ブライアンショーの助成金を表示:

| GRANT ALL PRIVILEGES ON *.* TO 'brian'@'%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |
66
Brian G

ユーザーテーブルのデフォルトユーザーの1人が'' @ localhost、これはテーブルの後半ですべてのlocalhostユーザーを拒否します。私がすることは、mysqldumpmysqlデータベースであり、Userテーブルでこのエントリを探します。見つかった場合は、削除して特権をフラッシュします。

詳細については、 https://dev.mysql.com/doc/refman/5.5/en/connection-access.html を参照してください。

特定のユーザー名について、サーバーが接続に一致するものを見つけようとすると、そのユーザーを明示的に指定するすべての行が最初に使用されると考えるのはよくある誤解です。本当じゃない。上記の例は、jeffreyによるh1.example.netからの接続が、ユーザー列の値として「jeffrey」を含む行ではなく、ユーザー名のない行によって最初に一致することを示しています。 その結果、jeffreyは接続時にユーザー名を指定したにもかかわらず、匿名ユーザーとして認証されます。

174
chaos

これは、匿名ユーザーが原因の問題です。 MySQLをインストールすると、常に実行されます

Shell> mysql_secure_installation 

ルートパスワードの設定/変更、匿名ユーザーの削除、リモートルートログインの禁止、テストデータベースの削除を選択します。これにより、匿名ユーザーが削除され、インストールが保護されます。また、あなたが持っている問題を解決する必要があります。

42
user2509314
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
21
zinking

ここで提供されるソリューションはどれも機能しませんでした。エラーと試行錯誤の後、パスワードに特殊文字が含まれていることに気付きました。特殊文字なしでパスワードを変更すると、問題が解決しました

10
cortopy

Mysqlドキュメントには次のように書かれています:(from http://dev.mysql.com/doc/refman/5.1/en/adding-users.html ):

2つのアカウントには、montyのユーザー名とsome_passのパスワードがあります。両方のアカウントは、すべての権限を持っているスーパーユーザーアカウントです。 'monty'@'localhost'アカウントは、ローカルホストから接続する場合にのみ使用できます。 'monty'@'%'アカウントは、ホスト部分に'%'ワイルドカードを使用するため、任意のホストからの接続に使用できます。

どこからでもmontyとして接続できるようにするには、montyの両方のアカウントが必要です。 localhostアカウントがない場合、montyがローカルホストから接続するときに、mysql_install_dbによって作成されるlocalhostの匿名ユーザーアカウントが優先されます。その結果、montyは匿名ユーザーとして扱われます。これは、匿名ユーザーアカウントが'monty'@'%'アカウントよりも特定のHost列値を持っているため、ユーザーテーブルの並べ替え順序が早いためです。

これを念頭に置いて、同じ権限を持つ'brian'@'localhost'ユーザーを作成することをお勧めします。

3
Russell Silva

「ラッセル・シルバ」は正しいと思います...

によってユーザーを作成しました

CREATE USER 'username'@'%' PASSWORD='userpassword';

しかし、このアカウントではログインできません。コンソールから

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

そこで、「%」を「localhost」に変更する以外は同じユーザー名でユーザーを作成し、最終的に「username」としてログインできました。それは私にとってはかなり奇妙です。

2
Chenxiao

助成金明細書でブライアンの引用符を忘れました。このようにしてみてください:

GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';

2
Asaph

将来の検索者にもう1つの可能性を提供するアカウントを作成しました。

経験豊富なユーザーにとっては明らかですが、パスワードはランダムに生成され、「\」が含まれていました。そのキャラクターが問題を引き起こしているように見えて、ログインできなくなってしまうまでしばらく時間がかかりました。

2
ception

私の場合、「SSL:REQUIRE SSL」(phpmyadmin内)をクリックしたことが原因でした。 「REQUIRE NONE」に変更すると、ログインできました。

1
Ari

17.04にアップグレードした後、Ubuntuで実行されているMaria DBに接続しようとすると、同様の問題が発生しました。

デフォルトでは、ローカルホストである127.0.0.1のみでリッスンします。

MySQL/Mariaが利用可能なすべてのポートとインターフェースでリッスンするようにするには、bind-address = 0.0.0.0を明示的に指定する必要がありました。この行をファイルの最後に追加しました/etc/mysql/my.cnf、つまり.

...
[client-server]

# Import all .cnf files from configuration directory

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/
bind-address=0.0.0.0

その後...

Sudo /etc/init.d/mysql restart 
0
theINtoy

別のホストから接続してから、localhost匿名ユーザーをバイパスし、それを削除して特権をフラッシュすることもできます。

mysql -u brian -ppassword -h 'other_Host_than_localhost'
0
obotezat