I get the same error---except when I run my script as root using sudo. Why should it need, or even want, to run as root? To be more precise,
me% perl -MDBD::mysql -e 'print "hello\n"'
works fine, as does
me% sudo perl checkin.pl
(which connects to a database on another server, ie, not localhost). But
me% perl checkin.pl
produces the error Hagen describes above. Any ideas would be most welcome.
I am running 10.6.1. I ripped out my previous MySQL and DBD::mysql installations, reinstalled MySQL 5.1.38 for x86_64 using the package installer from mysql.com, and manually installed DBD::mysql 4.012 with Perl Makefile.PL, etc. There were an awful lot of warnings on "make". Perhaps it is relevant that "make test" failed but "sudo make test" succeeded.
The error message from "make test" was to me uninformative. I will copy just the first few lines here:
% make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_h
+arness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00base....................ok 1/6
+
# Failed test 'use DBD::mysql;'
# at t/00base.t line 21.
# Tried to use 'DBD::mysql'.
# Error: Can't load '/Users/zteitler/Installers/DBD-mysql-4.012/b
+lib/arch/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/
+Users/zteitler/Installers/DBD-mysql-4.012/blib/arch/auto/DBD/mysql/my
+sql.bundle, 2): Symbol not found: _is_prefix
Any comments or suggestions would be most welcome.