質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

5022閲覧

ActivePerl Mysqlドライバのインストール・ビルド

TomoyukiWatase

総合スコア15

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2017/04/01 21:54

編集2017/04/01 23:23

ActivePerlv5.18.2です。Windows10を使用しています。
DBD-mysql-4.031のフォルダをカレントディレクトリに据えて
perl Makefile.PL
dmake
dmake test
dmake install
を試してみましたけれども
dmake.exe: Error code 129, while making 'blib\arch\auto\DBD\mysql\mysql.dll'
が表示され
cpan DBD-mysql-4.031
を試してみましたけれども
Warning: Cannot install DBD-mysql-4.031, don't know what it is.
が表示されました。
.plを実行しても
install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC
となります。
目標としてmysqlの行列をコマンドプロンプトで表示させることを考えています。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ActivePerlの場合、cpan を使わず、ppm(Perl Package Manager)を利用するのが良さそうです。

C:\> cd C:\ActivePerl\bin C:\ActivePerl\bin> ppm ppm> install DBI ppm> install DBD-mysql

(参考)
2.13.2 Windows に ActiveState Perl をインストールする。
https://dev.mysql.com/doc/refman/5.6/ja/activestate-perl.html


(追記:2017-04-02 16:15頃)

# 別のマシンで確認したところ、ウィンドウが表示されるのですね。

「Perl Package Manager(GUI)」からインストール。

PPM の画面

  1. 検索ボックスで「dbd-mysql」を入力し、絞込み。
  2. 該当のパッケージを選択し、右クリックで「Install DBD-MySQL ....」

投稿2017/04/02 01:42

編集2017/04/02 07:19
gorogoroIT

総合スコア447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TomoyukiWatase

2017/04/02 06:05

重ね重ね申し訳ありません、'ppm>'とお書きになっていらっしゃる意味が分かりません。 C:\ActivePerl\bin> ppmと打ち込むと確かにPerl Package Managerが出力されましたけれども、 検索用のボックスがありますね、それにinstall DBIと打ち込むのですか? コマンドプロンプトの方は止まってしまっていて入力できません。
gorogoroIT

2017/04/02 06:35

(回答作成時に利用していた)ActivePerlのバージョンが古いようでした。 別のマシンで確認したところ、Perl Package Manager のウィンドウが表示されました。。 検索ボックスで、「DBD-MySQL」を入力して、検索結果から パッケージをインストールすることができると思います。 パッケージを選択して、右クリックで、「install」でインストールできるかと。
TomoyukiWatase

2017/04/04 22:44

検索ボックスに「dbd-mysql」と入力しました。何も変化ありません。何かが間違っているのでしょうか? 「DBI」ではないかと思いまして、検索ボックスに「dbi」と入力すると6件出ました。 DBD-CSV perl 0.41 0.49 DBI driver for CSV files DBD-ODBC perl 1.45 1.52 ODBC DBD for Perl DBI DBD-Oracle perl 1.68 1.74 Oracle database driver for the DBI module DBD-Pg perl 2.19.3 PostgreSQL database driver for the DBI module DBD-SQLite perl 1.40 1.50 Self-contained SQLite RDBMS in a DBI driver DBI perl 1.630 1.636 Database independent interface for Perl PostgreSQL関連の4件目とSQLite関連の5件目は今回は関係なさそう。 6件目のDBIがありますね、これでしょうか? (.plコードに「use DBI;」と記述する、DBIですか?) それから、.plのコードの方もご質問したいのですが。 ネットからコピペで次のようなコードでMySQLの行列を出力しようと試みたのですけれども #!/usr/bin/perl use strict; use DBI; # MySQL our $DB_NAME = "db1"; our $DB_USER = "root"; our $DB_PASS = "mysql"; our $DB_HOST = "localhost"; our $DB_PORT = "3306"; my $dbh = DBI->connect("dbi:mysql:dbname=$DB_NAME;host=$DB_HOST;port=$DB_PORT","$DB_USER","$DB_PASS") or die "$!\n Error: failed to connect to DB.\n"; my $sth = $dbh->prepare("SELECT * FROM t1;"); $sth->execute(); while (my $ary_ref = $sth->fetchrow_arrayref) { my ($a, $b) = @$ary_ref; print "$a, $b\n"; } $sth->finish; $dbh->disconnect; 出典:http://db.just4fun.biz/?Perl/DBI%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6MySQL%E3%81%A7SELECT%E6%96%87%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B fetchrow_arrayref サンプル1です。
TomoyukiWatase

2017/04/04 22:50

上のサンプル1の結果は install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (you may need to install the DBD::mysql module)でした。 たいへん申し訳ありませんがお時間ございましたらご返信の方よろしくお願いします。
gorogoroIT

2017/04/05 03:07

Perl Package Manager(PPM)の検索対象が、「インストール済み」になっている可能性があります。 PPMの、メニューで [View] --> [All Packages] を選択してから、「dbd-mysql」検索すると、どうなりますでしょうか。 (「Installed Packages」にチェックが入っているかと思われます。)
TomoyukiWatase

2017/04/06 23:10

[View] --> [All Packages] を選択 「dbd-mysql」で検索すると Pachage N... Available Abstract DBD-mysql 4.033 A MySQL driver for the Perl5 Database Interface (DBI) と出力されました。右クリックで'Install DBD-mysql 4.033'に再度クリックでチェックマークを入れ 下部にSynchronizing Database ... done DBD-mysql marked for install となりました。これでよろしいでしょうか? しかしこのままでは サンプル1の結果は依然として install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (you may need to install the DBD::mysql module)でした。残念です。
TomoyukiWatase

2017/04/07 17:34

C:\Perl\site\bin\dbd でmysql.pmが確認できたのでインストールができたようです。 ありがとうございました。因みに上記のコードはCentOS環境でテストされていたものを 誤って出典を挙げてしまいました。 出典:http://www.moonmile.net/blog/archives/5419 こちらの方がよろしいかと思いました。 今回はインストール・ビルドまでということでコードにつきましては改めてさせていただきます。
gorogoroIT

2017/04/08 11:19

無事、「DBD-MySQL」インストールまではできたようで良かったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問