- ベストアンサー
ブラウザからの接続
Linuxのウェブサーバーに内側のWindowsPCからMySQL接続ができません。 外に公開することはまだ考えていませんが、MySQLのポート(3306)を開けないとだめなんでしょうか? (確認事項) ・ブラウザからphpinfo()のファイルは見えます。 ・Linuxでmysqlコマンドは使用でき、テーブルの一覧など見えます。 (環境) OS/Linux(Debian3.1) httpd/Apache1.3.33 database/MySQL4.0.24 CGI/PHP4.3.10-16
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
MySQLではユーザー認証の際に接続元を限定させることができます。 MySQLサーバーに接続ユーザーを登録する時に指定したはずです。 MySQLサーバー内のユーザーを管理しているテーブル(データベース名「mysql」の中のテーブル名「user」)を開くと、「Host」という項目があります。 そこが「%」のときは全てのリモートホストからの接続ができますが、「localhost」だと自分自身(そのマシン自身)からしかアクセスできません。 他にもこの項目はIPアドレスなんかをいれることで制限できます。ユーザー毎にできるので便利なのが特徴です。 で、これが原因でアクセスできないのだと思われますが確認してみてはどうでしょうか? なお、 > MySQLのポート(3306)を開けないとだめなんでしょうか? とありますが、ポートが開いていないとMySQLサーバー自体動いていないはずです。(自分自身でもアクセス不可) ルーター等のことを言っているのであれば、それは外に対して開けるのですから意味がありません。 そのMySQLの入っているLinuxマシンにソフトウェアファイアーウォールが入っていて弾いているのであればそれは許可しないとだめです。 あと気になった点をひとつ >> WindowsのMySQLにMySQL Administratorがあると思いますが、それでも接続はできませんか? > MySQLはLinuxにインストールしています。 質問に対して回答が合っていません。w MySQLにアクセスできるGUIなクライアントソフトとして「MySQL Administrator」というのがあります。 それから接続できないかを質問者さんは尋ねたということです。 ちなみに「MySQL Administrator」は http://www.mysql.com/products/tools/administrator/ で公開されています。
その他の回答 (1)
もう少し詳しく書かないと回答を導きづらいです。 1)ブラウザからphpinfoができる。 LinuxでApacheは正しく動いている。 LinuxでPHPは正しく動いている。 2)Linuxでmysqlコマンドは使える。 LinuxでMySQLは正しく動いている。 これだけしかわからないのです。 ・ブラウザから確認したphpinfo、これはLinux上で確認されたのでしょうか?それともWindowsPC上でしょうか? ・Linuxはローカルに存在するのでしょうか?それともルータ超えた先にあるのでしょうか? ・MySQL接続ができないのは、何で確認したのでしょうか? ・WindowsPCから、そのLinuxサーバーに対してPINGは実行できるのでしょうか? ・WindowsのMySQLにMySQL Administratorがあると思いますが、それでも接続はできませんか?
補足
回答ありがとうございます。補足します。 > ブラウザから確認したphpinfo、これはLinux上で確認されたのでしょうか?それともWindowsPC上でしょうか? WindowsPCからIEで確認しました。 > Linuxはローカルに存在するのでしょうか?それともルータ超えた先にあるのでしょうか? ローカルに存在します。ルーターの先はまだ考えていません。 > MySQL接続ができないのは、何で確認したのでしょうか? PHPのMySQLの接続スクリプトを書いたファイルにWindowsPCからIEで「http://x.x.x.x/~siteyuh/test.php」を表示して確認しました。 下記抜粋 $conn = mysql_connect("localhost", "siteyuh", "*****") or die("error"); > WindowsPCから、そのLinuxサーバーに対してPINGは実行できるのでしょうか? PINGは通っています。 > WindowsのMySQLにMySQL Administratorがあると思いますが、それでも接続はできませんか? MySQLはLinuxにインストールしています。
お礼
解決しました。 いろいろお手数かけました。 php4-mysql をインストールしないといけなかったようです。
補足
回答ありがとうございます。 mysqlのuserテーブルのlocalhostになっていたので、%になおしてやってみました。 MySQLAdministratorも使ってみましたが接続されません。 なお、ブラウザで表示されるエラーは Fatal error: Call to undefined function: mysql_connect() です。 MySQLAdministratorでのエラーは、 MySQL Error Number 2003 Can't connect to MySQL server On 'localhost' (10061) です。 WindowsPC(XP/HomeEdition)のほうにもApach+MySQL+PHPをインストールしてることも影響ありますか? サービスは止めてあります。