Q36:
XAMPPを利用して、MySQLをインストールしたホストPCに、他のPCからMySQLのデータベースを利用するアプリケーションをMZplatform上で作成したのですが、ホストのPCからMySQLへのアクセスは問題ないのですが、他のPCからアクセスする際に以下のようなエラーメッセージが表示されます。
Q36-1:
データベースのアクセス中に以下のエラーが発生しました[データベースアクセス[ID:10-26](KEY"データベースアクセス")]
(Exception:Communications links failure Last packet sent to the server was 0 ms ago)
同じローカルネットワーク上で、互いに共有ネットワークにアクセスできるので、MySQL側の設定に問題があると考えられるのですが、どのように対処すれば良いでしょうか?
A36-1:
@まずMySQLがインストールされているサーバーのIPアドレス、そしてMySQLのポート番号をご確認下さい。
MySQLのポート番号はデフォルトでは「3306」ですが、設定によっては変更されている場合があります。
ポート番号はMySQLのフォルダ内の「my.ini」に書いてあります。
AMZPlatformの[データベースアクセス]コンポーネントのメソッド
「データベースに接続する(String,String,String,String)」の
<引数1>(データベースのURL)をご確認下さい。
例えばデータベースアクセスサンプルアプリケーションでは、サーバー欄のテキストフィールドに「jdbc:mysql://locahost/」と書き込まれていますが、これは確認したIPアドレスとポート番号を使って「jdbc:mysql://IPアドレス:ポート番号/」となります。(データベース欄のデータベース名がこの後に来ます)
BMySQL側で外部接続が可能になっているか、また排他的設定をしていないかご確認下さい。
例えば「MySQL Server Instance Config Wizard」でTCP/IP接続を可能とするか設定することができます。
また、最近のインストーラーではFireWallにポートを例外設定するか選ぶようになっています。
ユーザーを「root」で使用している場合は、リモートマシーンから「root」ユーザーでログイン可能とするかパスワード設定の時に選択します。
但しお知らせ頂いたエラーメッセージは、MySQLサーバーに到達する以前の問題で起こることが多く、パスワードの設定などが要因の場合は違うエラーメッセージが出るかと思われます。
ご連絡
データベースのアクセスの件ですが、Bのfirewallが原因でした。ポート番号:3306を例外設定することで解決しました。