3

を含む一般的な方法のほとんどを使用して DBD::mysql をインストールしようとしていsudo cpanm -S DBD::mysqlます。ただし、これにはいくつかの深刻な問題があり、プロセッサに問題があるのではないかと考え始めています。私はこれを多くのコンピュータにうまくインストールしましたが、私の IT 部門がこの i5 MacBook Pro をくれて以来、うまくいきませんでした。DBD::mysql を i5 にインストールできた人はいますか? Mac OS 10.6.8 を実行しています。

実行後のbuild.logは次のとおりcpanmです。どんな助けでも大歓迎です。ありがとうございました!

cpanm (App::cpanminus) 1.4008 on perl 5.010000 built for darwin-thread-multi-2level
Work directory is /Users/jerickson/.cpanm/work/1314049977.98062
You have make /usr/bin/make
You have LWP 5.813
You have /usr/bin/tar: bsdtar 2.6.2 - libarchive 2.6.2
You have /usr/bin/unzip
Searching DBD::mysql on cpanmetadb ...
--> Working on DBD::mysql
Fetching http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.020.tar.gz
-> OK
Unpacking DBD-mysql-4.020.tar.gz
Entering DBD-mysql-4.020
Checking configure dependencies from META.yml
Checking if you have DBI 1.08 ... Yes (1.616)
Configuring DBD-mysql-4.020
Running Makefile.PL


PLEASE NOTE:

For 'make test' to run properly, you must ensure that the 
database user 'root' can connect to your MySQL server 
and has the proper privileges that these tests require such 
as 'drop table', 'create table', 'drop procedure', 'create procedure'
as well as others. 

mysql> grant all privileges on test.* to 'root'@'localhost' identified by 's3kr1t';

You can also optionally set the user to run 'make test' with:

perl Makefile.PL --testuser=username

I will use the following settings for compiling and testing:

  cflags        (mysql_config) = -I/usr/local/mysql/include  -Os -g -fno-common -fno-strict-aliasing -arch x86_64
  embedded      (mysql_config) = 
  libs          (mysql_config) = -L/usr/local/mysql/lib -lmysqlclient   -lpthread
  mysql_config  (guessed     ) = mysql_config
  nocatchstderr (default     ) = 0
  nofoundrows   (default     ) = 0
  ssl           (guessed     ) = 0
  testdb        (default     ) = test
  testhost      (default     ) = 
  testpassword  (default     ) = 
  testsocket    (default     ) = 
  testuser      (guessed     ) = root

To change these settings, see 'perl Makefile.PL --help' and
'perldoc INSTALL'.

Checking if your kit is complete...
Looks good
Using DBI 1.616 (for perl 5.010000 on darwin-thread-multi-2level) installed in /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBI/
Writing Makefile for DBD::mysql
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.yml ...
Finding PREREQ from Makefile ...
Checking if you have Data::Dumper 0 ... Yes (2.121_14)
Checking if you have DBI 1.08 ... Yes (1.616)
Checking if you have Test::More 0 ... Yes (0.98)
Checking if you have Test::More 0 ... Yes (0.98)
Checking if you have Data::Dumper 0 ... Yes (2.121_14)
Checking if you have DBI 1.08 ... Yes (1.616)
Building and testing DBD-mysql-4.020
cp lib/DBD/mysql.pm blib/lib/DBD/mysql.pm
cp lib/DBD/mysql/GetInfo.pm blib/lib/DBD/mysql/GetInfo.pm
cp lib/DBD/mysql/INSTALL.pod blib/lib/DBD/mysql/INSTALL.pod
cp lib/Bundle/DBD/mysql.pm blib/lib/Bundle/DBD/mysql.pm
gcc-4.2 -c  -I/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBI -I/usr/local/mysql/include  -Os -g -fno-common -fno-strict-aliasing -arch x86_64 -DDBD_MYSQL_INSERT_ID_IS_GOOD -g  -arch x86_64 -arch i386 -arch ppc -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -I/usr/local/include -Os   -DVERSION=\"4.020\" -DXS_VERSION=\"4.020\"  "-I/System/Library/Perl/5.10.0/darwin-thread-multi-2level/CORE"   dbdimp.c
dbdimp.c: In function ‘alloc_param’:
dbdimp.c:223: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘alloc_bind’:
dbdimp.c:241: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘alloc_fbind’:
dbdimp.c:257: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘alloc_fbuffer’:
dbdimp.c:272: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘parse_params’:
dbdimp.c:589: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘my_login’:
dbdimp.c:1996: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘mysql_describe’:
dbdimp.c:3605: warning: assignment from incompatible pointer type
dbdimp.c:3606: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘mysql_st_fetch’:
dbdimp.c:3798: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘alloc_param’:
dbdimp.c:223: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘alloc_bind’:
dbdimp.c:241: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘alloc_fbind’:
dbdimp.c:257: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘alloc_fbuffer’:
dbdimp.c:272: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘parse_params’:
dbdimp.c:589: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘my_login’:
dbdimp.c:1996: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘mysql_describe’:
dbdimp.c:3605: warning: assignment from incompatible pointer type
dbdimp.c:3606: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘mysql_st_fetch’:
dbdimp.c:3798: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘alloc_param’:
dbdimp.c:223: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘alloc_bind’:
dbdimp.c:241: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘alloc_fbind’:
dbdimp.c:257: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘alloc_fbuffer’:
dbdimp.c:272: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘parse_params’:
dbdimp.c:589: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘my_login’:
dbdimp.c:1996: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘mysql_describe’:
dbdimp.c:3605: warning: assignment from incompatible pointer type
dbdimp.c:3606: warning: format not a string literal and no format arguments
dbdimp.c: In function ‘mysql_st_fetch’:
dbdimp.c:3798: warning: format not a string literal and no format arguments
/usr/bin/perl -p -e "s/~DRIVER~/mysql/g" /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBI/Driver.xst > mysql.xsi
/usr/bin/perl /Library/Perl/Updates/5.10.0/ExtUtils/xsubpp  -typemap /System/Library/Perl/5.10.0/ExtUtils/typemap  mysql.xs > mysql.xsc && mv mysql.xsc mysql.c
Warning: duplicate function definition 'do' detected in mysql.xs, line 242
Warning: duplicate function definition 'rows' detected in mysql.xs, line 751
gcc-4.2 -c  -I/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBI -I/usr/local/mysql/include  -Os -g -fno-common -fno-strict-aliasing -arch x86_64 -DDBD_MYSQL_INSERT_ID_IS_GOOD -g  -arch x86_64 -arch i386 -arch ppc -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -I/usr/local/include -Os   -DVERSION=\"4.020\" -DXS_VERSION=\"4.020\"  "-I/System/Library/Perl/5.10.0/darwin-thread-multi-2level/CORE"   mysql.c
mysql.xs: In function ‘XS_DBD__mysql__db_do’:
mysql.xs:307: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘struct SV *’
mysql.xs:364: warning: format not a string literal and no format arguments
mysql.xs:365: warning: format not a string literal and no format arguments
mysql.xs:366: warning: format not a string literal and no format arguments
mysql.xs:525: warning: format not a string literal and no format arguments
mysql.xs: In function ‘XS_DBD__mysql__GetInfo_dbd_mysql_get_info’:
mysql.xs:930: warning: format ‘%i’ expects type ‘int’, but argument 2 has type ‘struct SV *’
mysql.xs: In function ‘XS_DBD__mysql__db_do’:
mysql.xs:307: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘struct SV *’
mysql.xs:364: warning: format not a string literal and no format arguments
mysql.xs:365: warning: format not a string literal and no format arguments
mysql.xs:366: warning: format not a string literal and no format arguments
mysql.xs:525: warning: format not a string literal and no format arguments
mysql.xs: In function ‘XS_DBD__mysql__GetInfo_dbd_mysql_get_info’:
mysql.xs:930: warning: format ‘%i’ expects type ‘int’, but argument 2 has type ‘struct SV *’
mysql.xs: In function ‘XS_DBD__mysql__db_do’:
mysql.xs:307: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘struct SV *’
mysql.xs:364: warning: format not a string literal and no format arguments
mysql.xs:365: warning: format not a string literal and no format arguments
mysql.xs:366: warning: format not a string literal and no format arguments
mysql.xs:525: warning: format not a string literal and no format arguments
mysql.xs: In function ‘XS_DBD__mysql__GetInfo_dbd_mysql_get_info’:
mysql.xs:930: warning: format ‘%i’ expects type ‘int’, but argument 2 has type ‘struct SV *’
Running Mkbootstrap for DBD::mysql ()
chmod 644 mysql.bs
rm -f blib/arch/auto/DBD/mysql/mysql.bundle
LD_RUN_PATH="/usr/local/mysql/lib:/usr/lib" /usr/bin/perl myld gcc-4.2 -mmacosx-version-min=10.6.3  -arch x86_64 -arch i386 -arch ppc -bundle -undefined dynamic_lookup -L/usr/local/lib dbdimp.o mysql.o  -o blib/arch/auto/DBD/mysql/mysql.bundle     \
       -L/usr/local/mysql/lib -lmysqlclient -lpthread   \

chmod 755 blib/arch/auto/DBD/mysql/mysql.bundle
cp mysql.bs blib/arch/auto/DBD/mysql/mysql.bs
chmod 644 blib/arch/auto/DBD/mysql/mysql.bs
Manifying blib/man3/DBD::mysql.3pm
Manifying blib/man3/DBD::mysql::INSTALL.3pm
Manifying blib/man3/Bundle::DBD::mysql.3pm
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
Bailout called.  Further testing stopped:  Unable to load DBD::mysql

#   Failed test 'use DBD::mysql;'
#   at t/00base.t line 21.
#     Tried to use 'DBD::mysql'.
#     Error:  Can't load '/Users/jerickson/.cpanm/work/1314049977.98062/DBD-mysql-4.020/blib/arch/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Users/jerickson/.cpanm/work/1314049977.98062/DBD-mysql-4.020/blib/arch/auto/DBD/mysql/mysql.bundle, 2): Library not loaded: libmysqlclient.18.dylib
#   Referenced from: /Users/jerickson/.cpanm/work/1314049977.98062/DBD-mysql-4.020/blib/arch/auto/DBD/mysql/mysql.bundle
#   Reason: image not found at /System/Library/Perl/5.10.0/darwin-thread-multi-2level/DynaLoader.pm line 207.
#  at (eval 7) line 2
# Compilation failed in require at (eval 7) line 2.
# BEGIN failed--compilation aborted at (eval 7) line 2.
FAILED--Further testing stopped: Unable to load DBD::mysql
make: *** [test_dynamic] Error 255
-> FAIL Installing DBD::mysql failed. See /Users/jerickson/.cpanm/build.log for details.

私はそれ以来試しsudo cpanm -Sf DBD::mysqlました。force フラグを使用すると、cpanm は正常にインストールされたと通知しますが、MySQL データベースへの接続を含むスクリプトを実行しようとすると、次のエラーが発生します。

Running...
install_driver(mysql) failed: Can't load '/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle
  Reason: image not found at /System/Library/Perl/5.10.0/darwin-thread-multi-2level/DynaLoader.pm line 207.
 at (eval 6) line 3
Compilation failed in require at (eval 6) line 3.
Perhaps a required shared library or dll isn't installed where expected
 at roster_generate.pl line 33
4

4 に答える 4

4

あ、追記で直りました

export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/"

私の .bash_profile に。たまたまのブログで見つけました。これが機能した理由を知っている人はいますか??

于 2011-08-23T13:34:36.860 に答える
2

Snow Leopard で動作するように以下を取得しました。これは、シンボリックリンクと呼ばれる暗黒時代の古い Linux トリックです。

cd /usr/lib sudo ln -sv /usr/local/mysql/lib/*.dylib .

環境変数 DYLD_LIBRARY_PATH の設定をいじらないでください。sudo は尊重せず、ブートするための厄介なメッセージを表示しないからです。

DBD::mysql と他のいくつかのものを (最終的に) コンパイルすることができました。

幸運を。

于 2013-08-15T02:06:18.907 に答える
1

Mac OSX Mavericks を使用している人のために、このモジュールを最終的に機能させるために使用した手順を次に示します。

最初に、DBD::mysql が既にインストールされている場合はアンインストールします。

sudo cpanm -U DBD::mysql

次のコマンドを実行して、MySQL lib ファイルをリンクします。jjohn が述べたように、変数 DYLD_LIBRARY_PATH を設定しても機能しません。

cd /usr/lib
sudo ln -sv /usr/local/mysql/lib/*.dylib .

DBD::mysql を再インストールします (-n フラグはテスト段階をスキップします)。

sudo cpanm -n DBD::mysql

それでおしまい!

念のため、Perl を 32 ビット モードで実行するように構成し、Apache を再起動しました。ただし、これらの手順が必要かどうかはわかりません。これを行うコマンドはそれぞれ次のとおりです。

defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes
sudo apachectl restart
于 2014-09-01T04:42:51.373 に答える
0

最近、まったく別のマシンに DBD::mysql パッケージを自分でインストールしようとしましたが、同じエラーが発生しました。インストーラーは mysql-devel パッケージの特定のライブラリーを必要としますが、残念ながらこれはわかりません。この mysql-devel パッケージを yum でインストールした後、インストールは問題なく行われました。

必要なライブラリを見つけるためにDYLD_LIBRARY_PATH、インストーラーも検索する変数を設定することで推測します。/usr/local/mysql/lib/

于 2011-10-18T12:48:44.157 に答える