Bug #48504 mysql client started (dynamically) linking libmysqlclient"
Submitted: 3 Nov 14:28 Modified: 24 Nov 18:05
Reporter: Andrii Nikitin
Status: Patch queued
Category:Server: Packaging Severity:S3 (Non-critical)
Version:5.1.41, 5.4.3 OS:Linux (CentOS)
Assigned to: Jonathan Perkin Target Version:5.1.42+
Tags: regression
Triage: Needs Triage: D2 (Serious)

[3 Nov 14:28] Andrii Nikitin
Description:
# ldd /usr/bin/mysql
libncursesw.so.5 => /usr/lib64/libncursesw.so.5 (0x0000002a9555e000)
libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000003c9eb00000)
libmysqlclient.so.16 => not found <===========
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003c9e000000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003c9de00000)
libm.so.6 => /lib64/tls/libm.so.6 (0x0000003c9d600000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000003c9d100000)
/lib64/ld-linux-x86-64.so.2 (0x0000003c9cf00000)

Note that in 5.1.37 and 5.4.2 no libmysqlclient.so line was present.

This may be a problem because libmysqlclient.so library is not included into server rpm.

How to repeat:
compare 'ldd mysql' output for affected versions.
looks problem is solved in 5.1.39 and 5.5 

Suggested fix:
do not require libmysqlclient.so library to run mysql
[5 Nov 17:43] Timothy Smith
I'm removing "5.1.38" from the version field, because this was fixed for 5.1.39 ff.  But
it may still be present for higher branches (e.g., 5.4).
[6 Nov 9:38] Simon Mudd
Yes. 5.1.39 is working fine (I made a ticket for this):

# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9593547
Server version: 5.1.39-enterprise-gpl-advanced MySQL Enterprise Server - Advanced Edition
(GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@XXXXX [somedb]> exit
# ldd /usr/bin/mysql
	libncursesw.so.5 => /usr/lib64/libncursesw.so.5 (0x0000002a9555e000)
	libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000003384300000)
	libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003383400000)
	libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003383800000)
	libm.so.6 => /lib64/tls/libm.so.6 (0x0000003382e00000)
	libc.so.6 => /lib64/tls/libc.so.6 (0x0000003382900000)
	/lib64/ld-linux-x86-64.so.2 (0x0000003382700000)
# 

The above is on a centos 4 x86_64 server.

So please for the 5.4 binaries statically link /usr/bin/mysql against the mysql client
libraries.
[20 Nov 14:00] Simon Mudd
The enterprise 5.1.41 rpms are similarly broken, and this is after correcting the problem
in 5.1.39.
[20 Nov 14:02] Simon Mudd
[root@dc01mdb-05 ~]# rpm -qa | grep MySQL
MySQL-server-advanced-gpl-5.1.41-0.rhel4
MySQL-client-advanced-gpl-5.1.39-0.rhel4
[root@dc01mdb-05 ~]# ldd /usr/bin/mysql
	libncursesw.so.5 => /usr/lib64/libncursesw.so.5 (0x0000002a9555e000)
	libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x000000383f800000)
	libcrypt.so.1 => /lib64/libcrypt.so.1 (0x000000383e900000)
	libnsl.so.1 => /lib64/libnsl.so.1 (0x000000383eb00000)
	libm.so.6 => /lib64/tls/libm.so.6 (0x000000383e300000)
	libc.so.6 => /lib64/tls/libc.so.6 (0x000000383de00000)
	/lib64/ld-linux-x86-64.so.2 (0x000000383dc00000)
[root@dc01mdb-05 ~]# rpm -Uvh MySQL-client-advanced-gpl-5.1.41-0.rhel4.x86_64.rpm
warning: MySQL-client-advanced-gpl-5.1.41-0.rhel4.x86_64.rpm: V3 DSA signature: NOKEY,
key ID 5072e1f5
Preparing...                ########################################### [100%]
   1:MySQL-client-advanced-g########################################### [100%]
[root@dc01mdb-05 ~]# rpm -qa | grep MySQL
MySQL-client-advanced-gpl-5.1.41-0.rhel4
MySQL-server-advanced-gpl-5.1.41-0.rhel4
[root@dc01mdb-05 ~]# ldd /usr/bin/mysql
	libncursesw.so.5 => /usr/lib64/libncursesw.so.5 (0x0000002a9555e000)
	libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x000000383f800000)
	libmysqlclient.so.16 => not found
	libcrypt.so.1 => /lib64/libcrypt.so.1 (0x000000383e900000)
	libnsl.so.1 => /lib64/libnsl.so.1 (0x000000383eb00000)
	libm.so.6 => /lib64/tls/libm.so.6 (0x000000383e300000)
	libc.so.6 => /lib64/tls/libc.so.6 (0x000000383de00000)
	/lib64/ld-linux-x86-64.so.2 (0x000000383dc00000)
[root@dc01mdb-05 ~]#
[20 Nov 14:46] Andrii Nikitin
I verified that problem exists in 

MySQL-client-advanced-gpl-5.1.41-0.rhel4.x86_64.rpm

but dependencies are correct in 5.1.41 "no-rpm" package:

$ ldd ~/mysql-advanced-gpl-5.1.41-linux-x86_64-glibc23/bin/mysql
	linux-vdso.so.1 =>  (0x00007fff34962000)
	libncursesw.so.5 => /lib/libncursesw.so.5 (0x00007fee8c866000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x00007fee8c64a000)
	libcrypt.so.1 => /lib/libcrypt.so.1 (0x00007fee8c411000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x00007fee8c1f7000)
	libm.so.6 => /lib/libm.so.6 (0x00007fee8bf73000)
	libc.so.6 => /lib/libc.so.6 (0x00007fee8bc04000)
	libdl.so.2 => /lib/libdl.so.2 (0x00007fee8ba00000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fee8cab5000)
[20 Nov 15:07] Valeriy Kravchuk
Problem does NOT exist in 5.1.37sp1 rpm also.
[24 Nov 20:15] Jonathan Perkin
The bug in our packaging scripts has been fixed and will be in place for 5.1.42 and
5.5.0-beta.  In addition our internal verification suite has been enhanced to check for
this bug.