2004-10-11 の「cygwin の Perl から Windows のMySQL に接続」で書いたように、今までは Cygwin 環境だったので MySQL 接続ドライバに Net::MySQL を使っていた。今回 ActivePerl を入れたので DBI + DBD が使えるようになるはず。Google で DBD DBI MySQL 設定を検索すると、perldoc.jp の文書がヒット。
INSTALL - DBD::mysqlのインストールと構成設定の方法
http://perldoc.jp/docs/modules/DBD-mysql-2.1026/DBD/mysql/IN ...
スタートメニューの ActiveState ActivePerl 5.8 から Perl Package Manager を起動し、install DBI を入力。あとは勝手にインストールされた。これは簡単だ。
INSTALL - DBD::mysqlのインストールと構成設定の方法
http://perldoc.jp/docs/modules/DBD-mysql-2.1026/DBD/mysql/IN ...
ActivePerl は DBD::mysqlのPPMアーカイブを提供しています。あなたに必要なことは以下のように打ち込むだけです
ppm
install DBI
install DBD-mysql
スタートメニューの ActiveState ActivePerl 5.8 から Perl Package Manager を起動し、install DBI を入力。あとは勝手にインストールされた。これは簡単だ。
ppm> install DBI
====================
Install 'DBI' version 1.43 in ActivePerl 5.8.4.810.
====================
Downloaded 513616 bytes.
Extracting 69/69: blib/arch/auto/DBI/Driver_xst.h
Installing C:\usr\site\lib\auto\DBI\dbd_xsh.h
Installing C:\usr\site\lib\auto\DBI\DBI.bs
Installing C:\usr\site\lib\auto\DBI\DBI.dll
Installing C:\usr\site\lib\auto\DBI\DBI.exp
Installing C:\usr\site\lib\auto\DBI\DBI.lib
Installing C:\usr\site\lib\auto\DBI\dbipport.h
Installing C:\usr\site\lib\auto\DBI\dbivport.h
Installing C:\usr\site\lib\auto\DBI\DBIXS.h
Installing C:\usr\site\lib\auto\DBI\dbi_sql.h
Installing C:\usr\site\lib\auto\DBI\Driver.xst
Installing C:\usr\site\lib\auto\DBI\Driver_xst.h
Installing C:\usr\html\bin\dbiprof.html
Installing C:\usr\html\bin\dbiproxy.html
Installing C:\usr\html\site\lib\DBI.html
Installing C:\usr\html\site\lib\Bundle\DBI.html
Installing C:\usr\html\site\lib\DBD\DBM.html
Installing C:\usr\html\site\lib\DBD\File.html
Installing C:\usr\html\site\lib\DBD\Proxy.html
Installing C:\usr\html\site\lib\DBD\Sponge.html
Installing C:\usr\html\site\lib\DBI\Changes.html
Installing C:\usr\html\site\lib\DBI\DBD.html
Installing C:\usr\html\site\lib\DBI\FAQ.html
Installing C:\usr\html\site\lib\DBI\Profile.html
Installing C:\usr\html\site\lib\DBI\ProfileData.html
Installing C:\usr\html\site\lib\DBI\ProfileDumper.html
Installing C:\usr\html\site\lib\DBI\ProxyServer.html
Installing C:\usr\html\site\lib\DBI\PurePerl.html
Installing C:\usr\html\site\lib\DBI\W32ODBC.html
Installing C:\usr\html\site\lib\DBI\Const\GetInfoReturn.html
Installing C:\usr\html\site\lib\DBI\Const\GetInfoType.html
Installing C:\usr\html\site\lib\DBI\Const\GetInfo\ANSI.html
Installing C:\usr\html\site\lib\DBI\Const\GetInfo\ODBC.html
Installing C:\usr\html\site\lib\DBI\DBD\Metadata.html
Installing C:\usr\html\site\lib\DBI\ProfileDumper\Apache.html
Installing C:\usr\html\site\lib\DBI\SQL\Nano.html
Installing C:\usr\html\site\lib\Win32\DBIODBC.html
Files found in blib\arch: installing files in blib\lib into architecture depnt library tree
Installing C:\usr\site\lib\DBI.pm
Installing C:\usr\site\lib\Bundle\DBI.pm
Installing C:\usr\site\lib\DBD\DBM.pm
Installing C:\usr\site\lib\DBD\ExampleP.pm
Installing C:\usr\site\lib\DBD\File.pm
Installing C:\usr\site\lib\DBD\NullP.pm
Installing C:\usr\site\lib\DBD\Proxy.pm
Installing C:\usr\site\lib\DBD\Sponge.pm
Installing C:\usr\site\lib\DBI\Changes.pm
Installing C:\usr\site\lib\DBI\DBD.pm
Installing C:\usr\site\lib\DBI\FAQ.pm
Installing C:\usr\site\lib\DBI\Profile.pm
Installing C:\usr\site\lib\DBI\ProfileData.pm
Installing C:\usr\site\lib\DBI\ProfileDumper.pm
Installing C:\usr\site\lib\DBI\ProxyServer.pm
Installing C:\usr\site\lib\DBI\PurePerl.pm
Installing C:\usr\site\lib\DBI\W32ODBC.pm
Installing C:\usr\site\lib\DBI\Const\GetInfoReturn.pm
Installing C:\usr\site\lib\DBI\Const\GetInfoType.pm
Installing C:\usr\site\lib\DBI\Const\GetInfo\ANSI.pm
Installing C:\usr\site\lib\DBI\Const\GetInfo\ODBC.pm
Installing C:\usr\site\lib\DBI\DBD\Metadata.pm
Installing C:\usr\site\lib\DBI\ProfileDumper\Apache.pm
Installing C:\usr\site\lib\DBI\SQL\Nano.pm
Installing C:\usr\site\lib\Win32\DBIODBC.pm
Installing C:\usr\bin\dbiprof
Installing C:\usr\bin\dbiprof.bat
Installing C:\usr\bin\dbiproxy
Installing C:\usr\bin\dbiproxy.bat
Successfully installed DBI version 1.43 in ActivePerl 5.8.4.810.
ppm> install DBD-mysql
====================
Install 'DBD-mysql' version 2.9003 in ActivePerl 5.8.4.810.
====================
Downloaded 178968 bytes.
Extracting 17/17: blib/arch/auto/DBD/mysql/mysql.lib
Installing C:\usr\site\lib\auto\DBD\mysql\mysql.bs
Installing C:\usr\site\lib\auto\DBD\mysql\mysql.dll
Installing C:\usr\site\lib\auto\DBD\mysql\mysql.exp
Installing C:\usr\site\lib\auto\DBD\mysql\mysql.lib
Installing C:\usr\html\site\lib\Mysql.html
Installing C:\usr\html\site\lib\Bundle\DBD\mysql.html
Installing C:\usr\html\site\lib\DBD\mysql.html
Installing C:\usr\html\site\lib\DBD\mysql\INSTALL.html
Files found in blib\arch: installing files in blib\lib into architecture depnt library tree
Installing C:\usr\site\lib\Mysql.pm
Installing C:\usr\site\lib\Bundle\DBD\mysql.pm
Installing C:\usr\site\lib\DBD\mysql.pm
Installing C:\usr\site\lib\DBD\mysql\GetInfo.pm
Installing C:\usr\site\lib\DBD\mysql\INSTALL.pod
Installing C:\usr\site\lib\Mysql\Statement.pm
Successfully installed DBD-mysql version 2.9003 in ActivePerl 5.8.4.810.
Windows マシン上にある MySQL 4.0.20 に cygwin の Perl 5.8.5 から接続したい。
CPAN から DBD と DBI をインストールすれば良いと思ったが make 中にエラー。そのプラットホーム用の MySQL のインクルードファイルがないとダメなようだ。
cygwin 用 に MySQL をインストールすればいいのかもしれないが、それはやりたくない。せっかく Windows ネイティブ版があるんだから。
Net::MySQL - Perlだけで書かれたMySQLネットワークプロトコルへのインターフェイス
http://perldoc.jp/docs/modules/Net-MySQL-0.05/MySQL.pod
ありがたい。これを使うことで無事接続できた。よかったー。
INSTALL - DBD::mysqlのインストールと構成設定の方法
http://perldoc.jp/docs/modules/DBD-mysql-2.1026/DBD/mysql/IN ...
CPAN から DBD と DBI をインストールすれば良いと思ったが make 中にエラー。そのプラットホーム用の MySQL のインクルードファイルがないとダメなようだ。
CPAN.pm: Going to build R/RU/RUDY/DBD-mysql-2.9004.tar.gz
Can't exec "mysql_config": No such file or directory at Makefile.PL line 174.
readline() on closed filehandle PIPE at Makefile.PL line 176.
Can't exec "mysql_config": No such file or directory at Makefile.PL line 174.
readline() on closed filehandle PIPE at Makefile.PL line 176.
Can't exec "mysql_config": No such file or directory at Makefile.PL line 174.
readline() on closed filehandle PIPE at Makefile.PL line 176.
Can't exec "mysql_config": No such file or directory at Makefile.PL line 174.
readline() on closed filehandle PIPE at Makefile.PL line 176.
Can't exec "mysql_config": No such file or directory at Makefile.PL line 174.
readline() on closed filehandle PIPE at Makefile.PL line 176.
Failed to determine directory of mysql.h. Use
cygwin 用 に MySQL をインストールすればいいのかもしれないが、それはやりたくない。せっかく Windows ネイティブ版があるんだから。
- Pure perl MySQL インターフェイス
以下を見つけた。Net::MySQL - Perlだけで書かれたMySQLネットワークプロトコルへのインターフェイス
http://perldoc.jp/docs/modules/Net-MySQL-0.05/MySQL.pod
Net::MySQLはPerlだけで記述されたMySQLデータベースへのクライアントインターフェイスです。MySQLのサーバとクライアント間で利用されているネットワークプロトコルを独自に実装しており、libmysqlclientなどMySQLのライブラリが無くても動作します。つまりMySQLが移植されていないOSからでもMySQLサーバに接続することができるのです。イカスッ!
ありがたい。これを使うことで無事接続できた。よかったー。
- 2004年10月12日 追記
cygwin 環境でのセットアップについて細かく解説してある。INSTALL - DBD::mysqlのインストールと構成設定の方法
http://perldoc.jp/docs/modules/DBD-mysql-2.1026/DBD/mysql/IN ...
C# などから MySQL に接続するためのライブラリやドライバ。Data Provider と呼ぶのが正しいのかな。
ODBC を使うのが一般的なようだ。
ライブラリ
http://www.cybercom.net/~zbrad/DotNet/MySql/
http://sourceforge.net/projects/mysqldrivercs/
http://sourceforge.net/projects/mysqlnet/
JDBCドライバ
http://web.archive.org/web/20030612135522/http://t3-jpn.com/ ...
ODBC を使うのが一般的なようだ。
ライブラリ
http://www.cybercom.net/~zbrad/DotNet/MySql/
http://sourceforge.net/projects/mysqldrivercs/
http://sourceforge.net/projects/mysqlnet/
JDBCドライバ
http://web.archive.org/web/20030612135522/http://t3-jpn.com/ ...
自社の Web サイトで使うなら、商用でも問題ないとのこと。
MySQL 日本公認代理店の株式会社ソフトエイジェンシーのページより引用。
http://www.softagency.co.jp/order/license.html
以下の @IT の 「第1回 MySQLインストール完全ガイド」は間違いだな。ASP の定義にもよるけど。
http://www.atmarkit.co.jp/flinux/rensai/mysql01/mysql01.html ...
MySQL 日本公認代理店の株式会社ソフトエイジェンシーのページより引用。
http://www.softagency.co.jp/order/license.html
MySQL のコマーシャルライセンスについて
・自社(自分)の Web サーバーのバックエンドとして MySQL サーバーを使用する場合には無料。
(委託して作った場合は除く。誰かに配布する場合は除く)
以下の @IT の 「第1回 MySQLインストール完全ガイド」は間違いだな。ASP の定義にもよるけど。
http://www.atmarkit.co.jp/flinux/rensai/mysql01/mysql01.html ...
ただし、委託を受けて外部にMySQL込みのアプリケーションやシステムを販売する場合や
MySQLをインストールしたサーバをASPなどの商用に利用する場合にはライセンス料が発生します。