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