2011-01-27 36 views
6

Tôi đang cố gắng để có được DBD :: MySQL làm việc trên Snow Leopard (v10.6.6). Phiên bản mặc định của Perl đi kèm với hệ điều hành là v5.10.0. Vì tôi đã đọc 64 bit, tôi đã tiếp tục và tải xuống và cài đặt phiên bản 64 bit của MySQL (mysql-5.5.8-osx10.6-x86_64).Lỗi cài đặt cho DBD :: MySQL trên OSX v10.6.6

Cài đặt và thiết lập MySQL diễn ra suôn sẻ, here's my config and version number for reference.

Tôi đã sử dụng CPAN để tải xuống DBI và trình điều khiển DBD :: MySQL. Sau đó tôi:

  • cài đặt DBI
  • Thiết lập một Makefile.PL
  • Ran làm lệnh từ dòng lệnh

Các Makefile.PL cho biết sẽ sử dụng các cài đặt sau cho biên dịch và thử nghiệm:

 
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 (User's choice) = r00t! 
    testsocket (default  ) = 
    testuser  (User's choice) = root 

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

Multiple copies of Driver.xst found in: /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBI/ /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level/auto/DBI/ at Makefile.PL line 907 
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 

Mọi thứ có vẻ ổn, cho đến khi tôi cố gắng chạy thực hiện kiểm tra:

 
t/00base....................NOK 2/6#  Tried to use 'DBD::mysql'.   
#  Error: Can't load '/Users/swm/.cpan/build/DBD-mysql-4.018-Pnd2qz/blib/arch/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Users/swm/.cpan/build/DBD-mysql-4.018-Pnd2qz/blib/arch/auto/DBD/mysql/mysql.bundle, 2): Library not loaded: libmysqlclient.16.dylib 
# Referenced from: /Users/swm/.cpan/build/DBD-mysql-4.018-Pnd2qz/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 9 

Không thành công vì dường như không tìm thấy mysql.bundle cho DBD. Có ai gặp vấn đề này không? Hoặc có thể chỉ cho tôi đúng hướng về những gì để thử tiếp theo? Tôi cần DBI/DBD :: MySQL cho công việc mới của tôi và tôi đang xáo trộn để tìm một giải pháp.

Rất cám ơn trước.

Trả lời

0

Đó là một phần của một sang một bên, nhưng tôi khuyên bạn nên thiết lập một perl riêng biệt trên máy - bằng fink/macports hoặc từ nguồn - và chỉ để lại hệ thống của perl (và các thư viện) của máy Mac. Một khi tôi đã làm điều này trên máy Mac của riêng tôi, tôi đã có rất ít rắc rối cài đặt mô-đun sau đó, và tôi không phải lo lắng về việc vô tình thổi một lỗ hổng trong hệ điều hành của tôi bằng cách phá vỡ perl mà hệ thống sử dụng.

Nếu đó là máy Mac của tôi, tôi sẽ cài đặt perl mới từ nguồn (bản phân phối nguồn Perl đủ thông minh để cài đặt chính nó xem trên máy Mac và tự cài đặt an toàn vào/usr/local/bin) tiến hành từ ngươi để cài đặt DBD :: Mysql (và các mô-đun khác mà bạn yêu cầu).

+0

kết hợp các macports perl5.12 (cũng cài đặt vào/usr/local/bin) và local :: lib sẽ không can thiệp vào hệ thống perl tại tất cả và thực sự dễ thiết lập –

13

Tôi gặp vấn đề "Thư viện không được tải: libmysqlclient.16.dylib" bằng cách đặt liên kết tượng trưng trong/usr/lib/"vào /usr/local/mysql-5.5.8-osx10.6-x86_64/ lib/libmysqlclient.16.dylib

1
điều

tôi làm việc xung quanh cùng một hoặc một vấn đề tương tự. bằng cách nào đó tôi có thể xây dựng và thử nghiệm DBD :: mysql với cpan nhưng khi tôi cố gắng sử dụng nó trong một kịch bản nó nói như

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

Dường như, đó là a 64-bit vs 32-bit issue.

Lắp đặt fink dbd-mysql-pm5100 package làm cho nó hoạt động mặc dù đã mất một thời gian dài. Tôi cũng đã xóa phiên bản cài đặt cpan:

sudo rm -rf /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBD/mysql 
sudo rm -rf /Library/Perl/5.10.0/darwin-thread-multi-2level/DBD/mysql 
sudo rm -rf /Library/Perl/5.10.0/darwin-thread-multi-2level/DBD/mysql.pm 
1

cũng bao gồm trong.hồ sơ

export VERSIONER_PERL_PREFER_32_BIT=yes; 

Bên cạnh việc tạo các liên kết hành của chương trình với DBI::mysql tạo ra một lỗi, do đó bao gồm cả biến này đối với môi trường làm cho nó hoạt động

1

Tôi biết đây là một bài cũ. Nhưng tôi cho rằng giải pháp tốt nhất là thêm thư mục thư viện vào biến env DYLD_FALLBACK_LIBRARY_PATH. (Lý do ở đây: https://stackoverflow.com/a/3172515/119958)

Không có ldconfig trong mac, vì vậy chỉ cần thêm đường dẫn đến var env này và chạy lại quá trình cài đặt cho DBD :: mysql

Donato-Vianas-MacBook-Pro:Invoicer donato$ cpanm DBD::mysql 
--> Working on DBD::mysql 
Fetching http://www.cpan.org/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.022.tar.gz ... OK 
Configuring DBD-mysql-4.022 ... OK 
Building and testing DBD-mysql-4.022 ... FAIL 
! Installing DBD::mysql failed. See /Users/donato/.cpanm/build.log for details. 

# Failed test 'use DBD::mysql;' 
# at t/00base.t line 21. 
#  Tried to use 'DBD::mysql'. 
#  Error: Can't load '/Users/donato/.cpanm/work/1359948144.491/DBD-mysql-4.022/blib/arch/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Users/donato/.cpanm/work/1359948144.491/DBD-mysql-4.022/blib/arch/auto/DBD/mysql/mysql.bundle, 2): Library not loaded: libmysqlclient.18.dylib 

Donato-Vianas-MacBook-Pro:Invoicer donato$ export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_FALLBACK_LIBRARY_PATH 
Donato-Vianas-MacBook-Pro:Invoicer donato$ cpanm DBD::mysql--> Working on DBD::mysql 
Fetching http://www.cpan.org/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.022.tar.gz ... OK 
Configuring DBD-mysql-4.022 ... OK 
Building and testing DBD-mysql-4.022 ... OK 
Successfully installed DBD-mysql-4.022 
1 distribution installed 
1

[Lurker lâu năm lần đầu tiên tấm áp phích]

Giải pháp của Donato hoạt động để cài đặt, nhưng var phải có mặt trong thời gian chạy hoặc tôi gặp lỗi tương tự. Các bản sửa lỗi sau đây tại thời điểm chạy cho người dùng shell và _www:

# For command line use, add following line to ~/.bash_profile: 
export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_FALLBACK_LIBRARY_PATH 

# If Apache needs it, add following line to /etc/apache2/httpd.conf: 
# On Lion Server, I put it after <IfDefine MACOSXSERVER>, but shouldn't matter 
SetEnv DYLD_FALLBACK_LIBRARY_PATH /usr/local/mysql/lib/:$DYLD_FALLBACK_LIBRARY_PATH 
Các vấn đề liên quan