Linuxの勉強のため、Microsoft Virtual PC 2007を使ってWindows上で

バーチャル環境を構築し、いろいろやってみています。
とりあえず、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とは直接
つながらないのか、別の設定方法などがあれば教えてください。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/11/18 10:45:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:tomcat_a88 No.1

回答回数48ベストアンサー獲得回数3

ポイント23pt

手元に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の接続を受けるのは、だいぶ危険ですが)

id:ketaojp

ありがとうございます。

Vine Linuxはバージョン3.2を使っているので

ファイアウォール機能は関係ないようです。

ポートを開ける操作は何も行っていませんが、

SSH,Web,ftpは何の問題もなくつながりました。

もちろん、MySQLには接続元が'%'のユーザを

設定しています。

2007/11/11 12:27:51
id:tomcat_a88 No.2

回答回数48ベストアンサー獲得回数3

ポイント23pt

Vineは3.2でもインストール時に言われたとおりインストールするとファイアウォールが入っちゃうような…。

よろしければ、 Vineのターミナル上で、

#/sbin/iptables -L

として、結果を見せてもらえませんか。疑いとしては、やはりファイアウォールの線だと思います。

(Vineのデフォルトで、 SSH Web FTP あたりは、空いてます、たしか。)

VirtualPC <-> ホストOS 間は、つながらないことはまず無いと思います。

ちょっと、こちらでもVine3.2で試してみますね・・・ 

id:ketaojp

勉強不足のため、お手数おかけしてすみません。

ご指示の結果ですが、

ーーーーーー

# /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

ーーーーーーーー

と、なりました。

これで何かわかりますでしょうか。

これでダメなら、はじめから構築し直すことも

考えたいと思います。

2007/11/11 13:49:43
id:tomcat_a88 No.3

回答回数48ベストアンサー獲得回数3

ポイント22pt

こっちでもやってみました。

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で入れてみてください。

案外すんなりいくかもしれません。

id:ketaojp

いろいろありがとうございました。解決しました。

結論から言うと、LinuxやVirtualPCの設定の

問題ではなく、接続テストした

かねやんMySQLAdminが原因でした。

付属部品のlibmySQL.dllを入れ替えたところ、

接続に成功しました。

お騒がせしてすみませんでした。

ここまでお付き合いいただいたことに

感謝いたします。

2007/11/11 15:17:45
id:tomcat_a88 No.4

回答回数48ベストアンサー獲得回数3

ポイント22pt

あちゃー…。

telnetでも試されたとあったので、クライアント側はあまり気にしてなかったのですが;

ちょっとガックリなオチですね(笑)

 

MySQLの操作は、Vine側に phpMyAdminでも入れておくと良いと思いますよ。何かと便利です。

 

 

なんだか、こんなオチですし、ポイントは結構です^^;

Linuxスタディ、がんばって続けられてください。応援しています。

id:ketaojp

がっくりさせてしまい、本当に申し訳ありません。

以前にMySQL4.0.25を違う環境で扱っていたときには、

問題なかったので、私もクライアントは気にして

いなかったのですが、

今回は4.1だったのに仕様の違いを知らず、

こんなことになってしまいました。

まだまだ勉強不足なので、これからも

頑張りたいと思います。

ありがとうございました。

2007/11/11 15:46:51

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません