Re: Unable to load dynamic library / mysql.so



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Zbigniew Szalbot wrote:
Hello,

2007/9/6, Matthew Seaman <m.seaman@xxxxxxxxxxxxxxxxxxxxxx>:
-----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
&quot;libmysqlclient.so.15&quot; not found, required by
&quot;mysql.so&quot; 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-----
_______________________________________________
freebsd-questions@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscribe@xxxxxxxxxxx"



Relevant Pages