Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

AW: frustrating error DBD::mysql CentOS8

49 views
Skip to first unread message

Andreas Mock

unread,
Jun 2, 2020, 7:45:11 PM6/2/20
to dbi users, Bruce Johnson

Hi Bruce,

 

only some hints. It sounds to me like a shared object mess which may be possible after upgrading.

 

If DBD::mysql ist installed via CentOS repository than you should find the package

wit a

rpm -q -a | grep -i mysql

 

When you've found that package, you can do a

rpm -q -l perl-DBD-MySQL          where perl-DBD-MySQL is the found package above.

 

Therein you should find the file which is the shared object to bind the mysql client

library, e.g. /usr/lib64/perl5/vendor_perl/auto/DBD/mysql/mysql.so

 

Now you can have a look into that shared object to see which names have to

be resolved:

 

objdump -T /usr/lib64/perl5/vendor_perl/auto/DBD/mysql/mysql.so

 

In the output you can see external references to other shared libraries, especially

these ones which are the building blocks of the mysql/mariadb driver.

 

Then you have to look into your filesystem whether there are different

incarnations of these so-Files.

 

But on the distance without having CentOS8 under my fingers just a guess.

 

Happy digging

Andreas

 

P.S.: Contraprove would be to install DBD::mysql into a local directory.

cpanm (App::cpanminus) makes it simple. Put "use lib 'thatdirectory';" in front of a testscript

and let DBI grab that version of the driver binding for you.

 

 

Von: Bruce Johnson <joh...@Pharmacy.Arizona.EDU>
Gesendet: Dienstag, 2. Juni 2020 19:56
An: dbi users <dbi-...@perl.org>
Betreff: frustrating error DBD::mysql CentOS8

 

I’ve copied a working script from one server to another (upgrading a web application server from Cnetos6 to centos8) and I keep getting the error:

 

[Tue Jun 02 10:29:32.289698 2020] [:error] [pid 3729:tid 140210163652352] DBD::mysql initialisation failed: Can't locate object method "driver" via package "DBD::mysql" at /usr/lib64/perl5/vendor_perl/DBI.pm line 827.\n\nPerhaps the capitalisation of DBD 'mysql' isn't right. at /home/allwebfiles/perl/badges/choose.pl line 54.\n

 

Mysql (actually MariaDB) is installed and working. both DBI and DBD::MySQL were installed via the CentOS repositories. (perl-DBI perl-DBD-MySQL packages)

 

DBI itself is functional since other DB methods are working Oracle, for example.

 

This is the (working on the other server!) code to establish the database handle:

 

my $dsn = "DBI:mysql:database=$dbname;host=$dbhost;port=$dbport" or die $DBI::errstr;

 

my $dbh = DBI->connect($dsn, $dbuser, $dbpass,{'RaiseError' => 1});

 

Pretty standard stuff. I'm not sure why this is happening. It is NOT the error being reported...

 

-- 
Bruce Johnson
University of Arizona
College of Pharmacy
Information Technology Group

Institutions do not have opinions, merely customs

 

0 new messages