[ec2-user@ip-172-30-0-136 ~]$ rpm -qR perl-DBD-MySQL
|
libc.so.6()(64bit)
|
libc.so.6(GLIBC_2.2.5)(64bit)
|
libc.so.6(GLIBC_2.3)(64bit)
|
libc.so.6(GLIBC_2.3.4)(64bit)
|
libc.so.6(GLIBC_2.4)(64bit)
|
libcrypto.so.10()(64bit)
|
libdl.so.2()(64bit)
|
libm.so.6()(64bit)
|
libmysqlclient.so.18()(64bit)
|
libmysqlclient.so.18(libmysqlclient_18)(64bit)
|
libpthread.so.0()(64bit)
|
libpthread.so.0(GLIBC_2.2.5)(64bit)
|
libssl.so.10()(64bit)
|
libz.so.1()(64bit)
|
perl >= 0:5.005
|
perl(:MODULE_COMPAT_5.16.3)
|
perl(Carp)
|
perl(DBD::mysql)
|
perl(DBI)
|
perl(DBI::Const::GetInfoType)
|
perl(DynaLoader)
|
perl(strict)
|
perl(vars)
|
rpmlib(CompressedFileNames) <= 3.0.4-1
|
rpmlib(FileDigests) <= 4.6.0-1
|
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
|
rtld(GNU_HASH)
|
rpmlib(PayloadIsXz) <= 5.2-1
|
[ec2-user@ip-172-30-0-136 ~]$ rpm -ql perl-DBD-MySQL | grep ".so"
|
/usr/lib64/perl5/vendor_perl/auto/DBD/mysql/mysql.so
|
[ec2-user@ip-172-30-0-136 ~]$ ldd /usr/lib64/perl5/vendor_perl/auto/DBD/mysql/mysql.so
|
linux-vdso.so.1 => (0x00007ffc00768000)
|
libmysqlclient.so.18 => /lib64/libmysqlclient.so.18 (0x00007ff5646f6000)
|
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff5644da000)
|
libz.so.1 => /lib64/libz.so.1 (0x00007ff5642c4000)
|
libm.so.6 => /lib64/libm.so.6 (0x00007ff563fc2000)
|
libssl.so.10 => /lib64/libssl.so.10 (0x00007ff563d51000)
|
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007ff5638f0000)
|
libdl.so.2 => /lib64/libdl.so.2 (0x00007ff5636ec000)
|
libc.so.6 => /lib64/libc.so.6 (0x00007ff56331f000)
|
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007ff563018000)
|
/lib64/ld-linux-x86-64.so.2 (0x00007ff564eb6000)
|
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007ff562dcb000)
|
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007ff562ae3000)
|
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007ff5628df000)
|
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007ff5626ac000)
|
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ff562496000)
|
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007ff562288000)
|
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007ff562084000)
|
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007ff561e6b000)
|
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007ff561c44000)
|
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007ff5619e2000)
|
[ec2-user@ip-172-30-0-136 ~]$ rpm -qf /lib64/libmysqlclient.so.18
|
MariaDB-compat-10.2.15-1.el7.centos.x86_64
|
I modified your test program to work in my test environment:
[ec2-user@ip-172-30-0-136 ~]$ cat test.c
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main(void)
{
FILE *fp;
MYSQL *mysql= mysql_init(NULL);
mysql_options(mysql, MYSQL_READ_DEFAULT_GROUP, NULL);
fp= fopen("/home/ec2-user/.my.cnf", "w");
if (!fp)
{
printf("cannot create configuration file\n");
return(-1);
}
fprintf(fp, "[client]\nssl-ca=/home/ec2-user/ca.pem\nssl-cert=/home/ec2-user/server-cert.pem\nssl-key=/home/ec2-user/server-key.pem");
fclose(fp);
if (!mysql_real_connect(mysql, "172.30.0.249", "maxscale", "password", NULL, 0, NULL, 0))
{
printf("Error: %s\n", mysql_error(mysql));
mysql_close(mysql);
return(-1);
}
printf("Cipher in use: %s\n", mysql_get_ssl_cipher(mysql));
mysql_close(mysql);
return 0;
}
And it also works properly:
[ec2-user@ip-172-30-0-136 ~]$ gcc $(mysql_config --include) $(mysql_config --libs) ./test.c
[ec2-user@ip-172-30-0-136 ~]$ ./a.out
Cipher in use: DHE-RSA-AES256-GCM-SHA384
[ec2-user@ip-172-30-0-136 ~]$ rpm -qa | grep -i maria
mariadb-5.5.56-2.el7.x86_64
MariaDB-devel-10.2.15-1.el7.centos.x86_64
MariaDB-compat-10.2.15-1.el7.centos.x86_64
MariaDB-shared-10.2.15-1.el7.centos.x86_64
MariaDB-common-10.2.15-1.el7.centos.x86_64
But the resulting binary is linked to /lib64/libmariadb.so.3:
[ec2-user@ip-172-30-0-136 ~]$ ldd ./a.out
linux-vdso.so.1 => (0x00007ffd0caeb000)
libmariadb.so.3 => /lib64/libmariadb.so.3 (0x00007f29ef78e000)
libz.so.1 => /lib64/libz.so.1 (0x00007f29ef578000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f29ef374000)
libm.so.6 => /lib64/libm.so.6 (0x00007f29ef072000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f29eee56000)
libssl.so.10 => /lib64/libssl.so.10 (0x00007f29eebe5000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f29ee784000)
libc.so.6 => /lib64/libc.so.6 (0x00007f29ee3b7000)
/lib64/ld-linux-x86-64.so.2 (0x00007f29ef9e7000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f29ee16a000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f29ede82000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f29edc7e000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f29eda4b000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f29ed83d000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f29ed639000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f29ed420000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f29ed1f9000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f29ecf97000)
While perl-DBD-MySQL requires libmysqlclient.so.18:
[ec2-user@ip-172-30-0-136 ~]$ rpm -qR perl-DBD-MySQL
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libcrypto.so.10()(64bit)
libdl.so.2()(64bit)
libm.so.6()(64bit)
libmysqlclient.so.18()(64bit)
libmysqlclient.so.18(libmysqlclient_18)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libssl.so.10()(64bit)
libz.so.1()(64bit)
perl >= 0:5.005
perl(:MODULE_COMPAT_5.16.3)
perl(Carp)
perl(DBD::mysql)
perl(DBI)
perl(DBI::Const::GetInfoType)
perl(DynaLoader)
perl(strict)
perl(vars)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1
[ec2-user@ip-172-30-0-136 ~]$ rpm -ql perl-DBD-MySQL | grep ".so"
/usr/lib64/perl5/vendor_perl/auto/DBD/mysql/mysql.so
[ec2-user@ip-172-30-0-136 ~]$ ldd /usr/lib64/perl5/vendor_perl/auto/DBD/mysql/mysql.so
linux-vdso.so.1 => (0x00007ffc00768000)
libmysqlclient.so.18 => /lib64/libmysqlclient.so.18 (0x00007ff5646f6000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff5644da000)
libz.so.1 => /lib64/libz.so.1 (0x00007ff5642c4000)
libm.so.6 => /lib64/libm.so.6 (0x00007ff563fc2000)
libssl.so.10 => /lib64/libssl.so.10 (0x00007ff563d51000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007ff5638f0000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ff5636ec000)
libc.so.6 => /lib64/libc.so.6 (0x00007ff56331f000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007ff563018000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff564eb6000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007ff562dcb000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007ff562ae3000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007ff5628df000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007ff5626ac000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ff562496000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007ff562288000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007ff562084000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007ff561e6b000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007ff561c44000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007ff5619e2000)
[ec2-user@ip-172-30-0-136 ~]$ rpm -qf /lib64/libmysqlclient.so.18
MariaDB-compat-10.2.15-1.el7.centos.x86_64
Would libmariadb.so.3 behave differently than libmysqlclient.so.18 in this context?