DBD::mysqlのインストール
presented by 役に立つかもしれないBlog
MySQLサーバ運用中にPerlでDBD::mysqlモジュールが必要になり、インストールすることになりました。 Perlには便利なCPANコマンドがあるので、これを使ってインストールしてみました。 トラブルがありながらもなんとかインストール完了。 これはその記録です。
CPANを使うと以下のコマンドで万事オッケーなはずなのですが、、
#perl -MCPAN -e shell cpan> install DBD::mysql
どうやら、今回はDBD::mysql 3.0007をインストールするみたいなのですが、2行目で以下のエラーが出てしまいました。
dbdimp.c: In function `mysql_st_internal_execute': dbdimp.c:2390: parse error before `rows' dbdimp.c:2467: `rows' undeclared (first use in this function) dbdimp.c:2467: (Each undeclared identifier is reported only once dbdimp.c:2467: for each function it appears in.) make: *** [dbdimp.o] Error 1 /usr/bin/make -- NOT OK Running make test Can't test without successful make Running make install make had returned bad status, install seems impossible
どうやらdbdimp.cファイル(場所はroot権限であれば
/root/.cpan/build/DBD-mysql-3.0007/dbdimp.cにあります)
に原因がある様子。
検索して調べてみると、2390行目のmy_ulonglong rows= 0;という行があやしいとのこと。 この行をちょっと上の
D_imp_sth(h); D_imp_dbh_from_sth; STRLEN slen; bool bind_type_guessing; char *sbuf = SvPV(statement, slen); char *table; char *salloc; int htype; my_ulonglong rows= 0; #←ここ
の位置に移動させました。 その後、再びcpanに戻って、
cpan> make DBD::mysql
を行うと、見事成功。 そのままインストール
cpan> install DBD::mysql
うまくいくと思ったのですが、今度は
DBI->connect(test) failed: Access denied for user: 'root@localhost' (Using password: NO)
のエラーが出てしまいました。 しかし、これはすでに運用中のMySQLサーバのrootのパスワードを設定したままにしていたので発生した問題で、rootのパスワードを一時的に無効にして実行したら無事にインストールできました。
このページに関連のある記事はこちら
- さくらのVPSのPHP+MySQLを最新のものにアップデート。
- JavaScriptでDATETIME型の日付を得る方法
- MySQL(innoDB)でリレーション設定時に「インデックスは設定されていません」エラー
- MySQLでRANDOMな数値を得る方法
- MySQLのunique属性で大文字や小文字が区別されない問題を解決
- MySQLの「Can't create/write to file '/tmp/#sql****.MYI'」エラーを解決する!
- MySQLで画像をデータベース化、エラー発生時の3つの注意ポイント
- MySQLでHAVING指定したら「Unknown column ... in 'having clause'」エラー
- 検索エンジンのランキングアルゴリズムをMySQLで真似てみる
- MySQLで期間限定のデータを取得するSQL文を書いてみよう
- MySQLの絶対値計算ABS()で異常な数値になる理由


