- PR -

データベースに接続できません。

投稿者投稿内容
pantora
会議室デビュー日: 2002/10/08
投稿数: 3
投稿日時: 2002-10-27 20:57
よくあることなんですけども、
IPアドレスが間違っていませんか?

もしくはTomcatが入ったマシンの
OS側のファイアウォールが効いているというオチとか。

L1(物理層)から順に確認してみてはいかがでしょう?
たか
会議室デビュー日: 2002/10/25
投稿数: 19
投稿日時: 2002-10-28 09:12
皆さん、ありがとうございます。
お返事が遅くなりまして、申し訳ありません。
ユーザー名、パスワードは間違っておりません。
IPアドレス及びポートも合っています。
只今、教えて頂いた部分を調査中です。
と言っても、基本的な部分がわかっていないので、
原因究明が出来るかどうか・・・。
Taka(2)さんの
 mysqldを--enable-named-pipe付きで実行してて、
 netstat -anしても、3306ポートをLISTENしてない
の部分をもう少し詳しく教えて頂けませんか?
pantoraさんの
 もしくはTomcatが入ったマシンの
 OS側のファイアウォールが効いている
なのですが、どの辺りを見ればよろしいのでしょうか?

はっきり言って、こんな事をするレベルでもありませんし、
もっと基本を勉強してからやるべきだとも思いますが、
挑戦してみなければ先に進めないと思い、やっております。
素人で申し訳ありませんが、宜しくお願いします。
たか
会議室デビュー日: 2002/10/25
投稿数: 19
投稿日時: 2002-10-28 09:23
現在LANでつながっているマシンがありますが、
 Linux、WinNT、Win2000
それぞれにMySQLを入れてみました。
WinNTとWin2000の間は、希望通りの結果が得られました。
WinマシンとLinuxの間でのみ、問題が発生しています。
この辺りに問題がありますか?

LinuxはWebServerです。
ApacheとTomcatの間はProxy接続です。
内部(LAN上)でのファイアーウォールは、特に設定していない積りなのですが・・・。

引き続き宜しくお願い致します。
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2002-10-28 09:50
Linuxのipchans/iptablesあたりでしょうかね?
http://www.linux.or.jp/JF/JFdocs/netfilter-faq.html
このへんを見てみてください。
たか
会議室デビュー日: 2002/10/25
投稿数: 19
投稿日時: 2002-10-28 19:44
たびたび申し訳ありません。
いろいろ試してみたところ、どうやら原因は
  CLASSPATH
にありそうなんですが・・・。
Connector/J
をインストールしたのですが、READMEを読んでも、
いまいち設定方法がわかりません。
  「ディレクトリをコピーしろ」だの
  「CLASSPATHを通せ」だの・・・。
いろいろとCLASSPATHをいじってみましたが、
今の状態ですとEXPORTしてもしなくても、
結局同じエラーです。
どうか宜しくお願い致します。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2002-10-28 23:57
ええ!初めの書き込みで書いてあったエラーから察すると、ネットワーク絡みかデーモンが動いてないとかかなーと思えるんですが、CLASSPATHですか〜・・・、う〜ん。

今の状況は
× Linux上のApache → Win2000上のMySQL
○ 他のWinNT    → Win2000上のMySQL
ということですよね。

>現在LANでつながっているマシンがありますが、
> Linux、WinNT、Win2000
>それぞれにMySQLを入れてみました。
>WinNTとWin2000の間は、希望通りの結果が得られました。
>WinマシンとLinuxの間でのみ、問題が発生しています。
>この辺りに問題がありますか?

この辺から分かるのは、どうもLinux側に何かあるのではないかなーということですよね。

原因1:
JSP側での接続方法(コーディング)に問題がある。
しかし、WinNTからWin2000に同じJSPを使って接続できた場合、違うはずですよね。

原因2:
MySQLがサービスとして正しく動いていない。
これも原因1と同じで、他のクライアントから同じ方法で接続できていれば、違うはず。
MySQLを動かしているWin2000でコマンドプロンプト開いて、Taka(2)さんが書いたように
netstat -an
って打って、

TCP 127.0.0.1:3306 0.0.0.0:0 LISTENING

とかっていうのがみつからないと、そもそも外部からの接続を待っていないということになりますよ。


原因3:
Linux側のファイアーウォールが悪さをしている。
ipchainsとかiptablesなんかがいい加減な設定で動いているなら、これが臭いですよねー。起動スクリプト(RedHatなら/etc/rcあたり)を見て、ipchainsとかiptablesが入っているようなら、お使いのランレベルの起動スクリプトディレクトリ内のシンボリックリンクを削除して起動してみて試してみてはいかがでしょうか。
Linux上から

mysql -h Win2000のIPアドレス -u root -p

とかやってもつながらないなら、たぶんこの辺かなー。

どうでしょかね?。


たか
会議室デビュー日: 2002/10/25
投稿数: 19
投稿日時: 2002-10-29 18:21
小僧さん、ありがとうございます。
 netstat -an
と打ったところ、なんかたくさん出てきましたが、
関係のありそうな所には、
 TCP 127.0.0.1:1040 127.0.0.1:3306 ESTABLISHED
 TCP 127.0.0.1:3306 127.0.0.1:1040 ESTABLISHED
となっておりました。
 LISTENING
ではありませんでした。
 127.0.0.1:1040
って、何ですか?
 原因1:
 JSP側での接続方法(コーディング)に問題がある。
 しかし、WinNTからWin2000に同じJSPを使って接続できた場合、違うはずですよね。
の部分ですが、
 NT→2000
 2000→NT
 2000→Linux
 NT→Linux
で接続できましたが、
あくまでもMySQLサーバーとクライアントでつながっただけなんです。
まぎらわしくてすみません・・・。
あと「MyODBC」でWin側の「Access」とLinux側の「MySQLサーバー」とで
テーブルのリンクが成功しています。
なにとぞ宜しくお願い致します。
Taka(2)
会議室デビュー日: 2002/10/11
投稿数: 6
投稿日時: 2002-10-29 23:16
以下の条件で、Linux(クライアント) → Windows(MySQLサーバ)でつながりました。

Windows XP Home Edition
mysql-3.23.53-win
起動コマンド: mysqld-max --standalone
(なんでstandaloneなのに、LAN越しOKなんだろう...)

Linux: Slackware7.0(古い...)
JDK1.3.0
JDBCドライバ: mysql-connector-java-2.0.14

上記条件でWindows側でnetstat -anした場合、
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING
のように出力されます。(なぜか2行出る)

ちなみに、testデータベースはつながったのですが、
mysqlデータベースは、以下のエラーで拒否されました。

Exception in thread "main" java.sql.SQLException: General error: Access denied for user: '@XXX.XXX.XXX.XXX' to database 'mysql'

これは、何か別の原因だと思われます。

スキルアップ/キャリアアップ(JOB@IT)