web-dev-qa-db-ja.com

メソッドmysql_native_passwordを使用した認証に失敗しました

Visual Studio 2012 Update 3のConnector/Net C#/ WinFormsを使用して、WebホストでMySQLに接続しようとしていますが、以下のエラーメッセージが表示されます。

メソッド 'mysql_native_password'を使用したユーザー '[email protected]'のホスト '1.1.1.1'への認証は、次のメッセージで失敗しました:ユーザー '[email protected]' @ '2.2.2.2'のアクセスが拒否されました(パスワードを使用:YES)

string connectionString = "SERVER=1.1.1.1;PORT=3306;DATABASE=databaseName;[email protected];PASSWORD=mypassword;";

MySqlConnection connection = new MySqlConnection(connectionString);
connection.Open();

リモートで接続し、IPをホワイトリストに登録し(さらに、テストするすべて(%)を一時的にホワイトリストに登録しました)、ユーザー名とパスワードとIPをトリプルチェックしました。

私はもともとドメインなしでユーザー名を試しました([email protected]ではなくユーザー名)が、それは私に以下のエラーを与えました:

古いパスワードによる認証はサポートされなくなりました。4.1スタイルのパスワードを使用してください。

どんな援助も大歓迎です、ありがとう!

16

「リモートデータベースアクセスホスト」の問題。 「Webサイト上のデータベースにアクセスできるホストのリストにドメイン名を追加することにより、外部WebサーバーがMySQLデータベースにアクセスできるようにすることができます。」

MySqlアクセスは、アプリケーションが実行されているシステムのIPアドレスには許可されません(あなたの場合は '2.2.2.2')。

注:-「2.2.2.2」はパブリックIPアドレスです。

6
yadavr

2つの可能性:

  1. MySQLは大文字と小文字が区別されますDatabase=接続文字列の実際のデータベース名と一致する
  2. ユーザーに特権を付与する必要がある場合があります。

これがお役に立てば幸いです。

3
Leonel Maye

アプリケーション設定ファイル(または接続文字列を保存した場所)を確認します。

私の場合、アプリケーションは古い接続文字列を使用していました(これは無効でした)。設定ファイルのコードに加えた変更は、(設定ファイルの)デザイナーに反映されると想定していました。しかし、そうではありませんでした!

1
theshinylight

私の場合、更新されたパスワードは使用されませんでした。パスワードジェネレーターを使用してパスワードを生成し、コピーしましたが、[パスワードの変更]をクリックするのを忘れました。

また、ユーザーがデータベースに追加され、特権を持っていることを確認します。

0

これは、特定のメンバーシップSQL ServerベースのASP.NET 4.5の指示の場合に関連する可能性があります。回避策は、web.configで新しいメンバーシップを作成し、mvc 4 AccountControlerを削除し、MVC3から古いまたはより古いものをここまたはインターネットで使用することです:

http://www.nsilverbullet.net/2012/11/06/using-mysql5-as-membership-backend-for-aspnet45-mvc4-application/

0
Robert Juz