« なぜこのサイトでモノを買ったのか?を考えてみた。 | main | 大阪てら子 22 「webカメラで遊ぼう!」に参加してきました »

DBD::mysqlのインストールメモ

PHP/システム関連

2009年04月23日

Movable Typeをローカル環境にインストールしようとした時に躓いたのでメモ。

※私のはMac OS10.5.6にMAMPをインストールした環境です。

DBD::mysqlがインストールされてない

ローカルにMovable Typeを解凍&設置し、mt-check.cgiを走らせたところ、

サーバーにDBD::mysqlがインストールされていないか、DBD::mysqlに必要なモジュールがインストールされていません DBIとDBD::mysqlは、MySQLを使ってブログのデータを管理するために必要です。 DBD::mysqlをインストールする場合は、インストール手順を参照してください。

なエラーが。MAMPはデフォでMySQLをインストールしてくれるので、DBD::mysqlとはperlとMySQLをつないでくれる便利なモノと予想。まあ、それはどうでもよくて、DBD::mysqlをインストールすることに。

DBD::mysqlをインストール

MySQLDBD::mysqlが必要となるのでダウンロードし解凍しとく。

以下を実行

1. mysql_configを探す。(私の場合は /Applications/MAMP/Library/bin/ にある)

2. MAMPと同じバージョンのMySQLをダウンロードして、解凍する。
 (訳注.mySQLのサイトからでもよし、MAMPのサイトでソース版をダウンロードしてもよし)

3. includeディレクトリを /Applications/MAMP/Library/ディレクトリの下に移動する。

4. libディレクトリの内容を /Applications/MAMP/Library/lib/mysql/ディレクトリにコピーする。

5. ターミナルを起動し、DBD::mysqlを解凍したディレクトリに移動

6. make file を作る:
sudo Perl Makefile.PL --mysql_config=/Applications/MAMP/Library/bin/mysql_config
 (訳注.mysql_configを指定することによって、この環境用のコンパイル引数を調べて設定してくれる)
※自分の場合、このままでは無理でした。当エントリの下の方参照
7. sudo make

8. sudo make install
Macが主流になってきました様より引用

ここで make コマンドが使えない

-bash: make: command not found
とハマる。

makeコマンドを使用できるようDeveloper Toolをインスト

appleのADC member siteより、Xcode (最新ver) Developer ToolsをDL&インストール

※DLにメンバー登録が必要です。(無料)

Device Centralが起動するか心配

Xcodeがあると、Device Central CS3が起動しないという症状があり、以前Xcodeをアンインストールしました。→Device Central CS3起動するようになった。

で、今回、Xcode 3.1.2をインストールしたところ、Device Central CS3も無事起動!!

makeコマンドも無事使用可能に

ということで、makeコマンドが通り、無事にDBD::mysqlがインストールされ、かつMac0S 10.5.6 & Movable Type + MySQL環境が構築できました。おわり。

嘘です。MySQLを選ぶところでこんなエラーが。(apache_error_logより)

[Thu Apr 23 23:40:17 2009] [notice] Digest: generating secret for digest authentication ...
[Thu Apr 23 23:40:17 2009] [notice] Digest: done
[Thu Apr 23 23:40:17 2009] [notice] Apache/2.0.59 (Unix) PHP/5.2.6 DAV/2 configured -- resuming normal operations
[Thu Apr 23 23:40:26 2009] [error] [client ::1] dyld: lazy symbol binding failed: Symbol not found: _mysql_init, referer: http://localhost/mt/mt-wizard.cgi
[Thu Apr 23 23:40:26 2009] [error] [client ::1]   Referenced from: /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, referer: http://localhost/mt/mt-wizard.cgi
[Thu Apr 23 23:40:26 2009] [error] [client ::1]   Expected in: dynamic lookup, referer: http://localhost/mt/mt-wizard.cgi
[Thu Apr 23 23:40:26 2009] [error] [client ::1] , referer: http://localhost/mt/mt-wizard.cgi
[Thu Apr 23 23:40:26 2009] [error] [client ::1] dyld: Symbol not found: _mysql_init, referer: http://localhost/mt/mt-wizard.cgi
[Thu Apr 23 23:40:26 2009] [error] [client ::1]   Referenced from: /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, referer: http://localhost/mt/mt-wizard.cgi
[Thu Apr 23 23:40:26 2009] [error] [client ::1]   Expected in: dynamic lookup, referer: http://localhost/mt/mt-wizard.cgi
[Thu Apr 23 23:40:26 2009] [error] [client ::1] , referer: http://localhost/mt/mt-wizard.cgi
[Thu Apr 23 23:40:26 2009] [error] [client ::1] Premature end of script headers: mt-wizard.cgi, referer: http://localhost/mt/mt-wizard.cgi

perlからMySQLへアクセスするスクリプトを試す

※mt425っていうデータベースとユーザはphpMyadminより作成してあります。

use DBI;

$user = 'hoge';
$passwd = 'hoge';
#$db = DBI->connect('DBI:mysql:hoge:localhost', $user, $passwd);
$db = DBI->connect('DBI:mysql:mt425:localhost:mysql_socket=/Applications/MAMP/tmp/mysql/mysql.sock', $user, $passwd);
$sth = $db->prepare("SELECT cd, nm FROM test");
$sth->execute;
$num_rows = $sth->rows;
print "該当 $num_rows 件\n";
for ($i=0; $i<$num_rows; $i++) {
    @a = $sth->fetchrow_array;
    print "cd=$a[0], nm=$a[1] \n";
}
$sth->finish;
$db->disconnect;

結果

dyld: lazy symbol binding failed: Symbol not found: _mysql_init
  Referenced from: /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle
  Expected in: dynamic lookup

dyld: Symbol not found: _mysql_init
  Referenced from: /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle
  Expected in: dynamic lookup

Trace/BPT trap

同じようなエラーが出たんで、Movable Typeはひとまず置いといて、perl&MySQLを解決しなくては。

追加(次の日) 寝て頭すっきりさせたらエラーがなくなった。

弄くりまわしてごちゃごちゃしたらエラーがなくなった。その過程を覚えてる範囲で記載しておきます。

1、用意するMySQLのバージョン

MAMPにはすでにMySQLが入っているのだけど、どうも完全体ではないみたいなので、MySQLをDLしてきて、おいしいところだけチョイスする。その時に「Mac OS X 10.5 (x86)」と「Mac OS X 10.5 (x86_64)」があるわけだが、x86の方を選んだ。※最初はx86_64を選んでいてエラーでてた。ただし、結果的にエラーがなくなっただけで、これが原因かどうかは分かりません。

perl Makefile.PLの設定

perl Makefile.PL --libs="-L/Applications/MAMP/Library/lib/mysql/lib -lmysqlclient" --mysql_config=/Applications/MAMP/Library/bin/mysql_config --testdb=mt425 --testhost=localhost -testuser=mt425 -testpassword=admin

※一行で
※mt425っていうデータベースとユーザはphpMyadminより作成してあります。

自分の場合、
/Applications/MAMP/Library/lib/mysql/lib
にDLしてきたMySQL(Mac OS X 10.5 (x86))のlibファイルをコピペして、Makefile.PL時に設定しました。

後は、 sudo make
sudo make test
sudo make install
です。

make test時にエラーが

/tmp/mysql.sockが無いYO!みたいなエラーが出たけど、これは無視!
※perlでのアクセス時や、movable typeインストール時にmysql.sockの位置を指定できため。

export PATH=$PATH:/Applications/MAMP/Library/bin あと上記のようなコマンドを打ったけど、意味は全然わかっていなかったりする。

OS10.5.6 & Movable Type & MySQL完了

mtmysql.jpg

データベースソケットのところにmysql.sockの位置を指定。データベースポートは無視。

これで多分完了。ローカルにmt環境作るだけなんて簡単よ!とか思ってたけど全くそんなことなかった。サーバー弄くれる人尊敬します。

trackbacks

trackbackURL:

comments

  • ASUKA
  • 2010年03月07日 03:48

webデザインを勉強についてご指導お願いいたします。
OSは mac、 winどちらがいいのですか?
またOSが決まり次第
1、フォトショップ
2、イラストレーター
3、ドリームウィーバー
の順で勉強しようと考えています、
この順序でのご指摘がありましたら、お願いいたします。
また、参考書などオススメのものがありましたら教えいただけませんか?

  • y-tti
  • 2010年03月07日 15:41

>>ASUKAさん
■win,macについて
mac、winともにどっちも良いと思いますが、
個人的にはmacの方が使いやすいように思います。
業界的にもmac率がハンパなく高いです。

■ソフトについて
「webデザイン」の括りでは、イラストレーターはほとんど使わないのですが、
「デザイン」の括りならば、イラストレーターは必須だと思います。
フォトショップは必須です。
ドリームウィーバーは僕は使ってないです(codaってソフト使ってます)
ゆえに、フォトショップとコーディング用エディタが基礎的なものになるかと!

■参考書について
参考書はオススメはないのですが、amazonなどで評価のいい本を2、3冊読めば
だいたいの知識は得られるかと思います。

  • 2011年04月10日 10:31

コメントを入力してください

  • 通りすがり
  • 2011年09月16日 10:25

googleからこちらにたどり着きました。
こちらの有益な情報で無事DBD::mysqlが使えるようになり、感謝感激です。

Very good blog post.Really thank you! Fantastic.

  • Paul
  • 2017年01月17日 19:52

I truly prize your function, Wonderful post.

  • Mark
  • 2017年01月18日 01:30

I appreciate, cause I found just what I was looking for. You have ended my 4 day long hunt! God Bless you man. Have a great day. Bye

comment form
Adobe Flash CS3 詳細! ActionScript 3.0 入門ノート (DVD-ROM付)
クラスで書けるようになった。配列のpushとかspliceとかsliceとかややこしい部分の辞書代わりにも使ってます。XML関係もこれで覚えた。
ActionScript 3.0 アニメーション
vx,Math,cos,sinとか???な数学的な部分をこの本で理解できた気がします。逃げたいジャンルだけどFLASHに必須なジャンルなのよね。。
Adobe Flash CS3 詳細! ActionScript3.0入門ノート2 (CD-ROM付)
ActionScript応用への第一歩。ただこれを読む前に入門ノート1を先に読んでおいた方がよさそう。ASの世界が広がった気がする本です。
Flash Creative Workshop
FLASHを始めて右も左も分からない時に救世主となった本。FLASHサイト制作法がなるほど!っと。ActionScriptバリバリの人はスルー。
FLASH OOP for ActionScript 3.0
FLASHの「今の主流」を知ることが出来る本。筆者の方々は総勢10人以上でかつ現在活躍中の方々ばかりなんでミーハー的な読み方もありかも。