0

質問があります。

WPFを使用してアプリを作成しました。データベースに接続してデータを取得しようとしています。初めて、自分のコンピューターでローカルデータベースを使用しようとしました。XAMPPとmysqlを使用します。

XAMPPを使用すると、データを正常に取得できます。今、自分のWebサイトでデータベースを使用したいと思います。しかし、アプリを実行すると失敗し、次のエラーメッセージが表示されます。

ユーザー'[myuser]'のアクセスが拒否されました(パスワードを使用:YES)

参考までに、私はすでにユーザー名とパスワードを作成しました。ウィザードを使用してすべての権限も付与しましたが、それでも機能しません。

これが私の接続文字列です:

MySqlConnection conn = new MySqlConnection("Server=[IP Address]; Database=[database name];Uid=[user id];Pwd=[password];");

接続文字列に間違いはありますか?

4

3 に答える 3

1

MySQLクレデンシャルは、リクエストを行うコンピューターのホスト名を考慮に入れます。たとえば、サーバーで行われたリクエストはuser@localhostのようになります。clientという名前のコンピューターからの呼び出しは、user@clientのようになります。ログインのホスト名部分をワイルドカードで指定しない限り、これらのそれぞれに独自のユーザーアカウントが必要です。使用しているアカウントはホスト名固有であると思われるため、ホスト名をワイルドカードで指定するか、許可されていないと言っているアカウントのエントリを作成する必要があります。

このリンクはそれについて少し話します。

http://dev.mysql.com/doc/refman/5.6/en/account-names.html

于 2012-06-24T15:57:57.303 に答える
0

ついに答えが見つかりました。

答えは、ホスティングにサーバー'%'を追加するだけです。'%'を追加した後、.NETアプリがデータベースにアクセスするための別のIPアドレスを追加できます。

.NETで、ホスティングから追加したIPアドレスでサーバーを変更します。ありがとう。

于 2012-07-03T15:18:31.780 に答える
0

フィリップ・ティニーが言うように、ホスト名の部分をワイルドカードで指定できます。私はこれを開発サーバーで使用しました(本番サーバーには推奨されません):

update mysql.user set host = '%' where host='localhost';

次に、MySQLにサーバーを使用させるためにサーバーを再起動する必要がありました(おそらく、MySQLサービスを再起動することもできました)。

于 2017-03-31T08:22:07.487 に答える