Unable to load dynamic library / mysql.so
Matthew Seaman
m.seaman at infracaninophile.co.uk
Wed Sep 5 23:31:59 PDT 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Zbigniew Szalbot wrote:
> Hello,
>
> 2007/9/6, Matthew Seaman <m.seaman at infracaninophile.co.uk>:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA256
>>
>> Zbigniew Szalbot wrote:
>>> Hello,
>>>
>>> I got a php warning and I am not sure what would be the best way to
>>> deal with it. I'd like to be able to load the dynamic extension as
>>> without it database back-end sites won't work. Will it help to force
>>> upgrade of php4 and php4-extensions (portupgrade -f)?
>>>
>>> php -v
>>> PHP Warning: Unknown(): Unable to load dynamic library
>>> '/usr/local/lib/php/20020429/mysql.so' - Shared object
>>> "libmysqlclient.so.15" not found, required by
>>> "mysql.so" in Unknown on line 0
>>> PHP 4.4.7 (cli) (built: Jul 28 2007 17:27:57)
>>> Copyright (c) 1997-2007 The PHP Group
>>> Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
>>>
>>> mysql --version
>>> mysql Ver 14.14 Distrib 5.1.21-beta, for portbld-freebsd6.2 (i386) using 5.0
>>>
>>> Many thanks for your suggestions!
>> What does:
>>
>> ldconfig -r | grep mysql
>
> ldconfig -r | grep mysql
> search directories:
> /lib:/usr/lib:/usr/lib/compat:/usr/X11R6/lib:/usr/local/lib:/usr/local/lib/compat/pkg:/usr/local/lib/mysql:/usr/local/lib/dovecot:/usr/local/lib/dovecot/imap:/usr/local/lib/dovecot/pop3:/usr/local/lib/dovecot/lda:/usr/local/lib/pth:/usr/local/lib/apache2
> 134:-lmysql_drv.7 => /usr/local/lib/libmysql_drv.so.7
> 206:-lmysqlclient.16 => /usr/local/lib/mysql/libmysqlclient.so.16
> 207:-lmysqlclient_r.16 => /usr/local/lib/mysql/libmysqlclient_r.so.16
>
> I did notice yesterday that the system now (after mysql upgrade) wants
> to use mysqlclient.so.16 (it was dovecot who first complained, its
> upgrade solved the problem). So maybe I should refresh the php
> installation to take notice of that?
>
Seems you've actually installed mysql-client-5.1.x rather than the
mysql-client-5.0.x PHP is looking for.
Recompiling PHP will make it link against the later shlib. In fact,
you should run this:
portupgrade -fr mysql-client
(or the equivalent in whatever ports management package you prefer)
Thus will force a recompile of everything that depends on
mysql-client, so that they all pick up the change in shlib version
number.
Hmmm... I guess you aren't a portupgrade(1) user, because if you
were, there would still be a copy of libmysqlclient.so.15 preserved
in /usr/local/lib/compat/pkg/ and the mysql dependent applications
would still be running against that. Although you should still do
the forced upgrade shown above: portupgrade's behaviour of saving
old shared libraries is meant to provide a temporary band-aid
towards keeping everything running as far as possible while
performing system updates.
Cheers,
Matthew
- --
Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard
Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
Kent, CT11 9PW
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFG357R8Mjk52CukIwRCNQAAJ4mADS9Gybg3JWdSuJb3HaFtHWFmgCfULYP
yqdlLbLT3QiSLdSyYnuo6fk=
=kM/F
-----END PGP SIGNATURE-----
More information about the freebsd-questions
mailing list