バーチャル環境を構築し、いろいろやってみています。
とりあえず、apache・proftpd・php・Mysql・phpmyadminを設定
しました。OSはVine Linux3.2です。
そこで、質問があるのですが、ホストOS(Windows XP)から、
このバーチャル環境への接続を試みたところ、Web・ftpは
つながるものの、Mysqlが直接つながりませんでした。
(telnet・かねやんMySQLAdminで実験)
Microsoft Virtual PCを使った場合、ポート3306は開放
されないのでしょうか?
/etc/my.conf も設定しましたが・・・
この場合、全くMysqlはホストOSとは直接
つながらないのか、別の設定方法などがあれば教えてください。
よろしくお願いします。
手元にVirtualPC2007 + VineLinux4.1 を作ったばかりでしたので、試してみました。
(デスクトップ構成で、特に設定を変えることなくインストール)
インストール時にファイアウォールを有効(デフォルト)にしたのであれば、単にポートが空いていない可能性があるのではないでしょうか。
GNOME上から設定されているのであれば、メニューから「デスクトップ」→「セキュリティレベルとファイアウォールの設定」→ 「その他のポート」 で、 3306 の tcp を追加してみてください。
iptablesでやるなら、おそらく先に RH-Firewall-1-INPUT のチェインに飛ぶので、
# /sbin/iptables -A RH-Firewall-1-INPUT -p tcp --dport 3306 -j ACCEPT
って感じだと思います(オプションが足りなかったらごめんなさい)
あと、ネットワーク内のほかのPCから接続を許可するには、MySQL側の設定が必要です。
たとえば、 10.0.0.1 の PC から root で mysql接続を許可する場合には、次のようなSQL文を実行しとく必要ありです。
GRANT ALL PRIVILEGES ON *.* TO root@10.0.0.1 IDENTIFIED BY 'password' WITH GRANT OPTION;
(ネットワーク経由でrootの接続を受けるのは、だいぶ危険ですが)
Vineは3.2でもインストール時に言われたとおりインストールするとファイアウォールが入っちゃうような…。
よろしければ、 Vineのターミナル上で、
#/sbin/iptables -L
として、結果を見せてもらえませんか。疑いとしては、やはりファイアウォールの線だと思います。
(Vineのデフォルトで、 SSH Web FTP あたりは、空いてます、たしか。)
VirtualPC <-> ホストOS 間は、つながらないことはまず無いと思います。
ちょっと、こちらでもVine3.2で試してみますね・・・
勉強不足のため、お手数おかけしてすみません。
ご指示の結果ですが、
ーーーーーー
# /sbin/iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ーーーーーーーー
と、なりました。
これで何かわかりますでしょうか。
これでダメなら、はじめから構築し直すことも
考えたいと思います。
こっちでもやってみました。
VineLinux3.2 フルインストールの構成です(ネットワークインストールしましたが…)
iptablesの結果は問題なさそうですね・・・ファイアウォールはとくに効いてないみたいです。
こっちでやってみました。
インストールは、単に # apt-get install mysql です。
つないでみましたが、とりあえずポートには無事つながりました。
まだ設定してませんので、このような応答が帰ってくるだけですが。
Host '192.168.1.11' is not allowed to connect to this MySQL server
たぶん、どこか基本的な部分でつまずかれているんじゃないかと思います。
念のためですが、mysqldは起動していますか・・・?
# netstat -an | more で、3306をListenしているか、
# ps -ef | grep mydwl で、プロセスはちゃんと起動しているか、
my.cnf で skip-networking が有効になってしまっていないか、などなど…
さらに念押しですが、VirtualPC側のIPはあってますか?
# /sbin/ip addr
ホストOS側(Windows)のファイアウォールで、telnet やらその他が、3306/tcp 宛のパケットをブロックしていたりしませんか?
あとは、もしmysqlをソースから入れているのだとしたら、aptで入れてみてください。
案外すんなりいくかもしれません。
いろいろありがとうございました。解決しました。
結論から言うと、LinuxやVirtualPCの設定の
問題ではなく、接続テストした
かねやんMySQLAdminが原因でした。
付属部品のlibmySQL.dllを入れ替えたところ、
接続に成功しました。
お騒がせしてすみませんでした。
ここまでお付き合いいただいたことに
感謝いたします。
あちゃー…。
telnetでも試されたとあったので、クライアント側はあまり気にしてなかったのですが;
ちょっとガックリなオチですね(笑)
MySQLの操作は、Vine側に phpMyAdminでも入れておくと良いと思いますよ。何かと便利です。
なんだか、こんなオチですし、ポイントは結構です^^;
Linuxスタディ、がんばって続けられてください。応援しています。
がっくりさせてしまい、本当に申し訳ありません。
以前にMySQL4.0.25を違う環境で扱っていたときには、
問題なかったので、私もクライアントは気にして
いなかったのですが、
今回は4.1だったのに仕様の違いを知らず、
こんなことになってしまいました。
まだまだ勉強不足なので、これからも
頑張りたいと思います。
ありがとうございました。
ありがとうございます。
Vine Linuxはバージョン3.2を使っているので
ファイアウォール機能は関係ないようです。
ポートを開ける操作は何も行っていませんが、
SSH,Web,ftpは何の問題もなくつながりました。
もちろん、MySQLには接続元が'%'のユーザを
設定しています。