ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

PerlコミュのCygwin + Perl でMySQL

  • mixiチェック
  • このエントリーをはてなブックマークに追加
こんにちは。ただいまUnixの環境が手元にないためCygwinを使っています。同じようにCygwin + Perl でMySQLを使っておられる方はいらっしゃるでしょうか?

DBIとDBD::mysqlをマニュアルでインストールしようと思っているのですがなかなかうまくいきません。まずDBIのインストールでつまずいています。(CPANのプロンプトで Install Bundle::DBI をするとmake testの段階で 

... Can't locate DBI.pm in @INC(....

とエラーが出てしまいます。これはmakeの段階でDBI.pmが作られていないと事なのでしょうか?同じような経験をお持ちの方、知恵を貸していただけると幸いです。

コメント(6)

LANの詳細設定(コントロールパネルのネットワーク接続)を見れば分かるのですが、プロキシサーバを利用していないでしょうか?
プロキシサーバを利用していると、環境設定をする必要があります。

また、もしかしたら、DBI.pmが既にインストールされているかもしれないので、実際にフォルダ(DBIというフォルダ)が存在するかどうか目で確認してみては?

Bundle::DBIでなくDBIをインストールする必要があります。
返答ありがとうございます。> tetsu&haruさん、shirayukiさん

どうやらDBIのファイルが途中でおかしくなったらしく、DBIのパッケージを解凍するところからやり直したら make, make test, make install とうまくいきました。

ところが今度はDBD::Mysqlでつまずいています。makeがうまくいきません。どうやら /usr/local/mysql/include/mysql に mysqld_error.h がないのが原因らしいのですが。

サーバはMysql5.0.45で、ダウンロードしたDBD::Mysqlは4.005です。互換性の問題でしょうか?

$ make
gcc -c -I/usr/lib/perl5/site_perl/5.8/cygwin/auto/DBI -I/usr/local/mysql/include/mysql -DDBD_MYSQL_INSERT_ID_IS_GOOD -g
-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -Wdeclaration-after-statement -DUSEIMPORTLIB -O3 -DVERSION=\"4.005
\" -DXS_VERSION=\"4.005\" "-I/usr/lib/perl5/5.8/cygwin/CORE" dbdimp.c
In file included from dbdimp.c:20:
dbdimp.h:23:45: mysqld_error.h: No such file or directory
dbdimp.c: In function `mysql_db_FETCH_attrib':
dbdimp.c:2268: warning: cast from pointer to integer of different size
dbdimp.c: In function `mysql_st_prepare':
dbdimp.c:2481: error: `ER_UNSUPPORTED_PS' undeclared (first use in this function)
dbdimp.c:2481: error: (Each undeclared identifier is reported only once
dbdimp.c:2481: error: for each function it appears in.)
dbdimp.c: In function `mysql_st_FETCH_attrib':
dbdimp.c:4071: warning: cast from pointer to integer of different size
make: *** [dbdimp.o] Error 1
単なる憶測ですが、ダウンロードしたモジュールが古いせいか、もとめているファイルが存在しないのでは(^^;)?
更に新しいバージョンが存在したり、互換性の面でmysql に合わせたりするなど試行してみると、うまくいくかもしれません。
mysqlを、windows上でインストーラで入れた、という前提でカキコします。
mysqlのヘッダファイルが"cygwin"環境から読めるところに入っていないと、DBD::mysqlはCPANでも入れることが出来ません。
mysqlのソースを落として、cygwin内でclientのみでも入れてやるか何かする必要があるはずです。
逃げ道としては、ODBCにする、mysqlppを使う、cygwinでなくactive perlで、コンパイル済みのDBD::mysqlを入れる、あたりでしょうが、それぞれ1長1短ありまして、どれがお勧めか書きにくいです。
# 私はactiveperlはmysqlもmysqlppも入れてますが、普段使いのcygwinにはmysqlppしか入っていません…

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Perl 更新情報

Perlのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング