重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Visual Web Developer 2005 でWebサイトを作成しています。
開発環境から、他のサイトのMySQLサーバーに接続できたので、レンタルサーバーに移したのですが、接続できません。
(レンタルサーバー内に作成した自分用のMS-DBには接続できます)

開発環境で、MySQLサーバーの接続には、MySQL Connector/Netをインストールし、コードによって接続文字列などを設定し、接続しています。

レンタルサーバーの仮想ディレクトリのbinフォルダには、MySql.Data.dllを入れています。(もしやと思い、WWWROOT\binにも入れました。)

エラーは以下のようなメッセージなのですが、アドバイスを頂けないでしょうか。

Server Error in '/Album' Application.
--------------------------------------------------------------------------------

Exception of type 'System.Exception' was thrown.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Exception: Exception of type 'System.Exception' was thrown.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[Exception: Exception of type 'System.Exception' was thrown.]
MySql.Data.MySqlClient.NativeDriver.Open() +110

[MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.]
MySql.Data.MySqlClient.NativeDriver.Open() +238
MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() +61
MySql.Data.MySqlClient.MySqlPool.GetConnection() +142
MySql.Data.MySqlClient.MySqlConnection.Open() +332
Album.Login.LoginButton_Click1(Object sender, EventArgs e) in E:\WEB\Album\Album\Login.aspx.vb:151
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102

A 回答 (2件)

レンタルサーバー側でMySQLのポートを閉じているんじゃないでしょうか?


インターネットに公開しているサーバー内のデータベースに直接アクセスするというのはあまり聞かないし、ぜい弱性になりかねないので。
    • good
    • 0
この回答へのお礼

アドバイスをありがとうございます。
すみません。ちょっと確認させて下さい。

・MySQLのサーバー
 → 開発環境から接続できているので、ポートは開いている。

・開発しているWebサイトを入れるレンタルサーバー
 → こちらも、ポートを開ける必要がある

ということでしょうか?
よろしくお願い致します。

お礼日時:2008/12/22 10:32

> こちらも、ポートを開ける必要がある


はい。「受信」じゃなくて「送信」ですね。
繰り返しになりますが、DBをインターネットに直接公開するというのは情報漏えい、改ざんなどの危険が伴うと思います。
そのDBサーバーがあなたの管理下にあるなら、そのあたり注意したほうがいいと思います。

この回答への補足

レンタルサーバーと何度も交渉しましたが、ポートを開いてもらえなかったので、自宅に
サーバーを立ち上げて実験したところ、OKでした。
どうもありがとうございました。

補足日時:2009/02/06 09:47
    • good
    • 0
この回答へのお礼

ありがとうございます。「送信」のほうのポートの状態を確認します。

DBの公開ですが、現在は、ユーザー名とパスワードによる公開ですが、接続が出来るようになった後、
接続可能なIPアドレスでも制限します。また、テーブルの制限、コマンドはSELECTのみなど、出来るだけの
制限をしたいと考えています。
ご指摘、ありがとうございます。

お礼日時:2008/12/22 11:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!