- - PR -
MYSQLの外部からリモート接続の仕方について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-07-18 16:56
MYSQLで外部のサーバーからリモートで接続してデータ
を取り出したいのですが、うまく外部から接続でき ません。 例えば、A(222.123.256.15)のサーバーに PHPのプログラムがあって、Bのサーバー(256.254.123.456)に Mysqlのデーターベースがあります。 MySQLはデフォルトではTCP-IP経由で接続することは できないのでしょうか? テスト用で作ったプログラムです。 <html> <head><title></title></head> <body> <?php $sv = ""; $dbname = "test"; $user = "root"; $pass =""; $disp_enc = "SJIS"; function cnv_dbstring($string,$enc) { $det_enc = mb_detect_encoding($string); if($det_enc and mb_detect_encoding_enc != $enc) { return mb_convert_encoding($string,$enc,$det_enc); } else { return $string; } } $conn = mysql_connect($sv,$user,$pass) or die("接続エラー"); mysql_select_db($dbname) or die("接続エラー"); $sql = "SELECT * FROM test"; $res = mysql_query($sql,$conn) or die("データ抽出エラー"); echo "<table border=\"1\">"; while($row = mysql_fetch_array($res,MYSQL_ASSOC)) { echo "<tr><td>".$row['id']."</td>"; $count_number = $row['count_number']; } echo $count_number; echo "</table>"; mysql_close($conn); ?> </body> </html> 環境は Feodra Core2 PHP4.1.3 Mysql 3.23.58 個人的にしたことなのですが、サーバーのグローバルIPアドレスを 指定をローカルから外部のIPアドレスに変えてみましたが うまくいきませんでした。このほかに方法があるのでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2005-07-19 09:31
MAVERICK と申します。
まず、リモートホストからポート 3306/TCP に接続できるかチェックしてください。 確か、デフォルトでは localhost 以外からは接続できないようになっているはずです。
TELNET がハングしたり、接続拒否される場合はリモートホストから接続ができませんので、設定をチェックしてください。 | ||||
|
投稿日時: 2005-07-28 23:29
ありがとうございます。会社のことなので、なかなか
試す時間がなくて返事おくれました。 ということは3306番のポートを開ければデフォルトで接続で きますでしょうか? MySQLで外部から接続できる設定でもあるのでしょうか? 情けない質問ですいません。 ようはレンタルサーバーを外部で借りていて、会社ないで構築 したMySQLにアクセスができるか試したいと思っているの ですが、何か良い手があればよろしくお願いします。 | ||||
|
投稿日時: 2005-07-29 01:53
こんばんは。
とりあえず、次の条件が必要です。 1. MySQLがTCPでも外部からの接続待ち受けをしていること。 確認:netstat -tlpn 等(0.0.0.0:3306 〜 LISTEN xxxx/mysqld の表示があれば) ※netstat の -p オプションは root限定なので注意!! 手段:設定オプションを色々いじれば… 既定:デフォルトではTCPポート3306番でListenしているかと 備考:TCPを使用しない場合は、UNIXドメインソケットでのローカル接続のみ 2. Netfilter/iptables で、接続制限をかけていないこと。 確認:iptables -t テーブル -vnL 等 (テーブルは主に filter 他に nat,mangle) 手段:iptablesコマンドで制限を無効化するなり、mysqlの通信を許可して下さい 既定:インストール時のファイアウォール設定によりけり 3. mysqldの権限テーブルで、外部からの接続を許可すること。 手段:mysqlユーザの追加方法、GRANTの使用法等 原理:アクセス制御の仕組み ちなみに、現行のマニュアルはこちらです。バージョン3ではありませんが、こちらでもそれなりに参考になると思います。 以上、ご参考まで。 [ メッセージ編集済み 編集者: angel 編集日時 2005-07-29 02:26 ] |
1