In this post we will see how we can configure and run MySQL5.1.73 version on CentOS7.

For this setup, we are using CentOS7, Updated as of April 2020.

Reasons for writing this post :- I head many times that we can’t install, configure and run MySQL5.1.73 version on CentOS7.

I tried it once and easily able to run this old MySQL Version on latest CentOS 7 machine as of now April 2020.

SetUP

Below are the OS details which is using while working on this work

OS Details

[root@srv60 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@srv60 ~]# uname -r
3.10.0-1062.18.1.el7.x86_64

MySQL Details

[root@srv60 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.73 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

Download MySQL Version

On CentOS7 is not provided with MYSQL5.1 version rpm. So we have to download tar-ball to run various required binaries from it.

We can download community version from link for any OS distribution or Just click on MySQL-5.1.73_for_CentOS7.

Like in my scenario

# cd /opt
# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.73-linux-x86_64-glibc23.tar.gz

# tar -xzvf mysql-5.1.73-linux-x86_64-glibc23.tar.gz

This will create one directory that would could rename to MySQL5.1

[root@srv60 opt]# ls -ltrh
total 128M
-rw-r--r--  1 root root 128M Nov  5  2013 mysql-5.1.73-linux-x86_64-glibc23.tar.gz
drwxr-xr-x 13 root root 4.0K Apr 21 03:32 mysql5.1

MySQL configuration file

In MySQL instance we are using one configuration file that has various options used during MySQL instance.For this instance as well i created /etc/my.cnf file that has some options that would use later while we start MySQL.

[root@srv60 ~]# egrep -v "^$|^#" /etc/my.cnf
[client]
port    = 3306
socket  = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket  = /var/run/mysqld/mysqld.sock
nice    = 0
syslog
[mysqld]
user      = mysql
pid-file  = /var/run/mysqld/mysqld.pid
socket    = /var/run/mysqld/mysqld.sock
basedir   = /opt/mysql5.1
port      = 3306
basedir   = /usr
datadir   = /var/lib/mysql
tmpdir    = /tmp

MySQL initial database

So now we have MySQL Dump tarball. Now we need to create initial database and run from it. To create it we have one script in this Dump, through this we can create initial database.

[root@srv60 mysql5.1]# scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf --basedir=/opt/mysql5.1

Above command would create initial database in database directory. This command was came some output like below.

[root@srv60 mysql5.1]# scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf --basedir=/opt/mysql5.1
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/opt/mysql5.1/bin/mysqladmin -u root password 'new-password'
/opt/mysql5.1/bin/mysqladmin -u root -h srv60.geekpills.com password 'new-password'

Alternatively you can run:
/opt/mysql5.1/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /opt/mysql5.1 ; /opt/mysql5.1/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /opt/mysql5.1/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /opt/mysql5.1/scripts/mysqlbug script!

Start MySQL instance

Now we could start MySQL instance with simple commands mentioned above in output. We can also set MySQL root password.

[root@srv60 mysql5.1]# /opt/mysql5.1/bin/mysqladmin -u root password 'passw0rd'

Now we could start MySQL instance like below

[root@srv60 ~]#  cd /opt/mysql5.1 ; /opt/mysql5.1/bin/mysqld_safe &
[1] 2215
[root@srv60 mysql5.1]# 200423 17:38:58 mysqld_safe Logging to syslog.
200423 17:38:59 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

Now we can connect this database with same password mentioned above.

[root@srv60 mysql5.1]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.73 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MySQL [(none)]> 

In above mentioned steps , now we know how to configure MySQL5.1.73 version on CentOS7. We could also create systemctl service file for this MySQL instance, will cover in next post of it.