Multi Versions
Running multiple versions of MySQL on the same host without using containers
Install MySQL 5.6, 5.7, 8.0 with generic binaries
https://dev.mysql.com/downloads/mysql/
Check version of glibc
ldd --version || yum list glibc
Install prerequisites
yum install libaio perl-Data-Dumper # MySQL 5.6 requires perl module
Get the archives with precompibled binaries
curl -OL https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.17-x86_64-minimal.tar.xz
curl -OL https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
curl -OL https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz
Decompress archives
tar -xf /opt/mysql-8.0.21-linux-glibc2.17-x86_64-minimal.tar.xz -C /usr/local/
tar -xzf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
tar -xzf mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
Create base directories per versions
mkdir -pv /var/lib/{mysql80,mysql57,mysql56}
Change owner:group of directories
chown -Rv mysql:mysql /var/lib/{mysql80,mysql57,mysql56}
Initialize data directories
/usr/local/mysql-8.0.21-linux-glibc2.17-x86_64-minimal/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql-8.0.21-linux-glibc2.17-x86_64-minimal --datadir=/var/lib/mysql80
/usr/local/mysql-5.7.30-linux-glibc2.12-x86_64/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql-5.7.30-linux-glibc2.12-x86_64 --datadir=/var/lib/mysql57
/usr/local/mysql-5.6.48-linux-glibc2.12-x86_64/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql-5.6.48-linux-glibc2.12-x86_64 --datadir=/var/lib/mysql56
Create symlink for mysqld_multi which will manage starting/stopping the instances
ln -sv /usr/local/mysql-8.0.21-linux-glibc2.17-x86_64-minimal/bin/mysqld_multi /usr/bin/mysqld_admin
Configure my.cnf
SELinux
During the inial setup/configuration, I disabled SELinux and uninstalled polkit. You may refer the Dealing with SELinux section of my Multi Instances project.
Last updated
Was this helpful?