0

どうぞよろしくお願いいたします。これを入力し始めると、SOが同様のトピックを閲覧するための機能を件名に追加していることに気付きました。リソースを使い果たした後、この投稿を続けます。

ローカルネットワーク上に2台のマシンがあります。
プロダクションボックス-Ubuntu、Apache、Mono、Asp.net、C#(すべて最新)。
開発ボックス-Xamarinを使用したWindowsXP

プロダクションボックスはWANIPのポート80からホストされるため、モバイルデバイス(プロダクションテスト)または開発ボックス(ブラウザープロダクションテスト、またはXamarinを使用したリモート開発環境テスト)からWebサイトにアクセスできます。

私の接続文字列は間違いなく次のとおりです。server=$servername $; port = 3306; database = $ databasename $; uid = $ username $; password = $ password $;

4つのサーバー値の組み合わせすべてを使用しました([SERVERNAME]、localhost、127.0.0.1、リモート開発環境テスト用の実際のネットワークIP)。

cnfにbind-address:127.0.0.1があります。

実稼働テストを使用してサイトにアクセスするたびに、「指定されたMySQLホストのいずれかに接続できません」というエラーが引き続き発生します(ブラウザにWAN IPを入力してサイトにアクセスすると、Apacheは同じです。ボックスをMySqlとして)またはリモート接続(開発クライアント、Xamarinデバッガー)。

netstatは、ポート3306でリッスンしていると言っています。

接続文字列からポート3306を削除してみました。

PASSWORD / PWD USER ID / UID/USERのさまざまな組み合わせを試してみました。

すべての失敗。助けてください!

4

1 に答える 1

1

ファイルをバインド127.0.0.1している場合my.cnfは、ローカルデータベースコンピューターからのみデータベースに接続できることを意味します。 127.0.0.1はローカルループバックアドレスであり、ローカルホスト接続のみを許可します。Webサイトが同じサーバーでホストされていない場合、これが接続できない理由です。

別のサーバーからデータベースに接続する場合は、ファイル内のデータベースサーバーのLANIPをバインドしmy.cnfます。

次に、データベースサーバーのLAN IPアドレスを接続文字列に入れると、接続できるようになります。

エラーは実際にはネットワーク接続エラーです。まだ認証を行っていないため、別のユーザー名とパスワードを試しても効果はありません。ネットワークの問題を整理すると、認証が失敗した場合に別のエラーが発生します(たとえば、パスワードを使用したuser @ hostが失敗した場合)

于 2013-03-26T23:06:46.590 に答える