When attempting to upgrade from Percona Server 5.5 to 5.6 on CentOS 6.4, you'll encounter dependency errors for libcrypto.so.10 and libssl.so.10. This stems from a fundamental OpenSSL version mismatch between RHEL/CentOS 6.4 and 6.5.
Red Hat introduced OpenSSL 1.0.1e in RHEL 6.5, which changed the binary interface. Packages built for RHEL 6.5+ expect these newer library versions, while CentOS 6.4 ships with OpenSSL 1.0.0.
# On CentOS 6.4:
$ rpm -qi openssl
Version : 1.0.0
Release : 20.el6_2.5
Here are three approaches to resolve this:
Option 1: Upgrade to CentOS 6.5+
The cleanest solution is upgrading your OS to a compatible version:
yum clean all
yum update
reboot
Option 2: Install Compatible OpenSSL Packages
If upgrading isn't feasible, install the newer OpenSSL packages manually:
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/openssl-1.0.1e-16.el6_5.x86_64.rpm
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/openssl-devel-1.0.1e-16.el6_5.x86_64.rpm
rpm -Uvh openssl-*.rpm
Option 3: Symbolic Links Workaround
For temporary fixes (not recommended for production):
cd /usr/lib64
ln -s libcrypto.so.1.0.0 libcrypto.so.10
ln -s libssl.so.1.0.0 libssl.so.10
ldconfig
After applying any solution, verify the libraries are correctly resolved:
ldd /usr/bin/mysql | grep ssl
libssl.so.10 => /lib64/libssl.so.10 (0x00007f8e3a1f0000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f8e39e10000)
For development environments, consider containerization:
docker run -d \
--name percona-server \
-e MYSQL_ROOT_PASSWORD=secret \
-p 3306:3306 \
percona:5.6
- Always test solutions in staging first
- Document all manual changes for future reference
- Consider migrating to supported OS versions for security
- Backup your data before making system changes
When attempting to install Percona Server 5.6 on CentOS 6.4, you encounter dependency errors indicating missing OpenSSL libraries:
Error: Package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
Requires: libssl.so.10(libssl.so.10)(64bit)
This stems from a binary compatibility break between RHEL/CentOS 6.4 and 6.5 in OpenSSL. The version in CentOS 6.4 provides:
$ rpm -q openssl
openssl-1.0.0-27.el6.x86_64
While Percona packages compiled against RHEL 6.5+ expect:
libcrypto.so.10 (OPENSSL_1.0.1)
libssl.so.10 (OPENSSL_1.0.1)
Option 1: Official Package Solution
The cleanest approach is to install the compatibility package:
yum install openssl-compat-1.0.1
If not available in your repos, add EPEL:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
Option 2: Manual Symlink Creation
For systems where package installation isn't possible:
cd /usr/lib64
ln -s libcrypto.so.1.0.0 libcrypto.so.10
ln -s libssl.so.1.0.0 libssl.so.10
ldconfig
Option 3: Full System Upgrade
The most future-proof solution:
yum update
reboot
After applying any solution, verify the libraries:
ls -l /usr/lib64/libssl.so.10
ls -l /usr/lib64/libcrypto.so.10
Check Percona installation:
yum install Percona-Server-server-56 Percona-Server-client-56
If issues persist, examine library dependencies:
ldd $(which mysqld) | grep -E 'ssl|crypto'
For custom compiled applications, you may need to rebuild with proper OpenSSL flags:
./configure --with-ssl=/usr/include/openssl
make clean
make