Hi Johnny, all!

Johnny Stork wrote:
> Typo, moved from 5.0.67 to 5.1.34

Ok, that helps - I checked the contents.

> 
> Johnny Stork wrote:
>> I recently upgraded an asterisk/trixbox server to mysql 5.1.34 from
>> 5.64. Access to the db seesm fine from the shell, phpmyadmin or even
>> the Trixbox/FreePBX tool, but trying to apply Trixbox changes, or
>> running a "pear update" produces the errors below. I created a couple
>> of sl but this did not seem to fix the problem. Below is the error and
>> contents of /usr/lib

Somewhere during this upgrade you seem to have lost the shared libraries
of the MySQL client side which you had with version 5.0.67:
  /usr/lib/libmysqlclient_r.so.15.0.0
  /usr/lib/libmysqlclient.so.15.0.0
MySQL 5.0 comes with version 15 of these libraries,
MySQL 5.1 comes with version 16.


How these are handled depends on how you install MySQL (assuming Linux):

a) If you use "tar.gz" packages, then MySQL 5.0 has brought version 15
   and created symlinks from the unversioned name to the versioned:
     /usr/lib/libmysqlclient.so -> /usr/lib/libmysqlclient.so.15
     /usr/lib/libmysqlclient.so.15 -> /usr/lib/libmysqlclient.so.15.0.0
   /usr/lib/libmysqlclient.so.15.0.0 would be a real file.
   (Similar for "libmysqlclient_r.so")

   Then, upgrading to 5.1 would bring version 16:
     /usr/lib/libmysqlclient.so -> /usr/lib/libmysqlclient.so.16
     /usr/lib/libmysqlclient.so.16 -> /usr/lib/libmysqlclient.so.16.0.0
   Again, /usr/lib/libmysqlclient.so.16.0.0 would be a real file.

   Note that this installation changes the symlimk for the unversioned
   name, but would not touch version 15, there still is
     /usr/lib/libmysqlclient.so.15 -> /usr/lib/libmysqlclient.so.15.0.0
   /usr/lib/libmysqlclient.so.15.0.0 would still exist as a real file.

b) If you use RPMs, then installing MySQL 5.0 has set up version 15 of
   the client libraries in the same way.
   However, the upgrade to MySQL 5.1 would have removed the files
   brought by 5.0 and just installed the new version 16
   (specifically, the 5.1 "shared" RPM does this).

   If you use applications that were built against older versions of the
   MySQL client libraries (like "Trixbox"), you must not lose these
   older files.

   For this purpose, we provide "shared-compat" RPMs, they contain the
   current and all previous versions of the client libraries.
   See this contents listing:

>prompt> rpm -qlvp MySQL-shared-compat-5.1.34-0.glibc23.i386.rpm | cut 
>-c1-11,37-
> lrwxrwxrwx        24 Apr  5 23:56 /usr/lib/libmysqlclient.so -> 
> libmysqlclient.so.16.0.0
> lrwxrwxrwx        24 Apr  5 23:56 /usr/lib/libmysqlclient.so.10 -> 
> libmysqlclient.so.10.0.0
> -rwxr-xr-x    224606 Apr  5 23:56 /usr/lib/libmysqlclient.so.10.0.0
> lrwxrwxrwx        24 Apr  5 23:56 /usr/lib/libmysqlclient.so.12 -> 
> libmysqlclient.so.12.0.0
> -rwxr-xr-x    221492 Apr  5 23:56 /usr/lib/libmysqlclient.so.12.0.0
> lrwxrwxrwx        24 Apr  5 23:56 /usr/lib/libmysqlclient.so.14 -> 
> libmysqlclient.so.14.0.0
> -rwxr-xr-x   1267848 Apr  5 23:56 /usr/lib/libmysqlclient.so.14.0.0
> lrwxrwxrwx        24 Apr  5 23:56 /usr/lib/libmysqlclient.so.15 -> 
> libmysqlclient.so.15.0.0
> -rwxr-xr-x   1942232 Apr  5 23:56 /usr/lib/libmysqlclient.so.15.0.0
> lrwxrwxrwx        24 Apr  5 23:56 /usr/lib/libmysqlclient.so.16 -> 
> libmysqlclient.so.16.0.0
> -rwxr-xr-x   1989112 Apr  5 23:56 /usr/lib/libmysqlclient.so.16.0.0
> lrwxrwxrwx        26 Apr  5 23:56 /usr/lib/libmysqlclient_r.so -> 
> libmysqlclient_r.so.16.0.0
> lrwxrwxrwx        26 Apr  5 23:56 /usr/lib/libmysqlclient_r.so.10 -> 
> libmysqlclient_r.so.10.0.0
> -rwxr-xr-x    230560 Apr  5 23:56 /usr/lib/libmysqlclient_r.so.10.0.0
> lrwxrwxrwx        26 Apr  5 23:56 /usr/lib/libmysqlclient_r.so.12 -> 
> libmysqlclient_r.so.12.0.0
> -rwxr-xr-x    225752 Apr  5 23:56 /usr/lib/libmysqlclient_r.so.12.0.0
> lrwxrwxrwx        26 Apr  5 23:56 /usr/lib/libmysqlclient_r.so.14 -> 
> libmysqlclient_r.so.14.0.0
> -rwxr-xr-x   1274796 Apr  5 23:56 /usr/lib/libmysqlclient_r.so.14.0.0
> lrwxrwxrwx        26 Apr  5 23:56 /usr/lib/libmysqlclient_r.so.15 -> 
> libmysqlclient_r.so.15.0.0
> -rwxr-xr-x   1950652 Apr  5 23:56 /usr/lib/libmysqlclient_r.so.15.0.0
> lrwxrwxrwx        26 Apr  5 23:56 /usr/lib/libmysqlclient_r.so.16 -> 
> libmysqlclient_r.so.16.0.0
> -rwxr-xr-x   1999100 Apr  5 23:56 /usr/lib/libmysqlclient_r.so.16.0.0
> lrwxrwxrwx        21 Apr  5 23:56 /usr/lib/libndbclient.so -> 
> libndbclient.so.2.0.0
> lrwxrwxrwx        21 Apr  5 23:56 /usr/lib/libndbclient.so.2 -> 
> libndbclient.so.2.0.0
> -rwxr-xr-x    759988 Apr  5 23:56 /usr/lib/libndbclient.so.2.0.0

   For comparison, this is the 5.1.34 "shared" RPM:

>> rpm -qlvp MySQL-shared-5.1.34-0.glibc23.i386.rpm | cut -c1-11,37-
> lrwxrwxrwx        24 Mar 31 22:47 /usr/lib/libmysqlclient.so -> 
> libmysqlclient.so.16.0.0
> lrwxrwxrwx        24 Mar 31 22:47 /usr/lib/libmysqlclient.so.16 -> 
> libmysqlclient.so.16.0.0
> -rwxr-xr-x   1998728 Mar 31 22:48 /usr/lib/libmysqlclient.so.16.0.0
> lrwxrwxrwx        26 Mar 31 22:47 /usr/lib/libmysqlclient_r.so -> 
> libmysqlclient_r.so.16.0.0
> lrwxrwxrwx        26 Mar 31 22:47 /usr/lib/libmysqlclient_r.so.16 -> 
> libmysqlclient_r.so.16.0.0
> -rwxr-xr-x   2008716 Mar 31 22:48 /usr/lib/libmysqlclient_r.so.16.0.0



Ok, so much for the background. Now how do you fix it?

This should be simple: You need version 15 of the client libraries as
"real" files, but the default (unnamed) must still be a symlink to
version 16 (as shown in the above list).

You have two possibilities:

a) If you are using tar.gz (or if you are using RPMs and don't want to
   uninstall "shared", see below), just remove the wrong symlinks (all
   about version 15) and manually install the real files,
   "/usr/lib/libmysqlclient.so.15.0.0" (and "libmysqlclient_r").
   Then, install the symlinks:
     /usr/lib/libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
   (again, similar for "libmysqlclient_r").

   You get them from your backup (you have one, I trust?).

   If you don't have them, just download a 5.0.67 tar.gz package for
   your platform, and extract only these files.
   On Linux, you can also download a 5.0.67 "shared" or "shared-compat"
   RPM, or a 5.1.34 "shared-compat" one, and use "rpm2cpio" to extract
   these files.


b) If you are using RPMs, you may uninstall the 5.1.34 "shared" RPM and
   then install the 5.1.34 "shared-compat" (for your platform).

   Uninstalling "shared" may complain about breaking dependencies -
   don't worry, "shared-compat" will fix this.
   So you can forcefully uninstall "shared" and immediately install
   "shared-compat", the worst that will happen is that a MySQL client
   started in this tiny gap will not come up.

   However, I cannot guarantee that installing "shared-compat" will not
   complain about the existing symlinks of version 15, you may need to
   remove them manually.


HTH,
Jörg

-- 
Joerg Bruehe,  MySQL Build Team,  joerg.bru...@sun.com
Sun Microsystems GmbH,   Komturstraße 18a,   D-12099 Berlin
Geschaeftsfuehrer: Thomas Schroeder, Wolfgang Engels, Wolf Frenkel
Vorsitzender des Aufsichtsrates: Martin Haering     Muenchen: HRB161028


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to