Configuring and Installing MySQL 5

This step is required because PHP 5 does not bring embedded MySQL support anymore. Even if you are not installing a MySQL 5 server on the same server as your web server, this step is required in order to install MySQL 5 client, in order to allow PHP 5 to connect to MySQL 5 servers.

The first thing you need to know is that MySQL 5 does not bring separated packages for client and server configurations, like MySQL 4 – everything is inside the same package. Also, the procedure for installing a MySQL client is different from installing a MySQL server.

If you don’t want a MySQL 5 server running on the same server as your web server – which is desirable for large websites, i.e., you will have one web server running Apache + PHP and another server running exclusively MySQL – you will need to install only a “client” version of MySQL 5.

If you want a MySQL 5 server running on the same server as your web server, then you will need to install the whole MySQL 5 server.

The procedure for these two scenarios is quite different, so you need to know which path to take.

Anyway, for both scenarios the first thing you need to do is to uninstall any MySQL version you may already have installed on your server.

On Debian you can do this by running (assuming that the old version was 4.1, of course):

apt-get remove mysql-server-4.1
apt-get remove mysql-client-4.1

On Fedora you can do this by running:

rpm -e <module_name>

With rpm -qa | grep MySQL you can find out the MySQL modules you have installed and that you will need to remove.

You can also, just in case, move the old MySQL libraries that may be left in the system to a backup location, with:

mv /usr/lib/libmysql* /root

So if anything goes wrong you still have these files.

Here comes the tricky part. If you want to install just MySQL 5 client, you will need to download the source code. The problem is that the source code is the last thing on MySQL  downloads page, and a lot of people download the binaries instead, which contains MySQL server, not the client.

If you want to install MySQL 5 server on the same server as your web server, you will need to download both the source code and the binaries. Of course you can compile the source code to get the binaries done, however here is a important trick: according to MySQL website, if your server is based on an Intel CPU, the binaries compiled with Intel compiler will make your MySQL 5 server to run 20% faster than installing the standard binaries compiled with gcc. Since our server was a dual-Xeon, we preferred to download the Intel-compiled version rather than compiling MySQL 5 by ourselves.

So, for both scenarios you will need to create MySQL 5 client. As we mentioned, this is done by downloading the MySQL 5 source code at – it is the very bottom of this page. Download the “Compressed GNU TAR archive (tar.gz)” version.

The downloading, configuration and installation sequence would be the following:

cd /root
tar -xvzf mysql-5.0.37.tar.gz
cd mysql-5.0.37
./configure –without-server
make install

You can check if your installation was successfully done by checking if the new mysql libraries were installed at /usr/lib:

ls /usr/lib/libmysql*

The output should be something like this:

/usr/lib/      /usr/lib/
/usr/lib/  /usr/lib/

If you can’t find these files or if they are using a version lower than 15, you must redo the above procedures, making sure to run make clean before starting over.

Now your MySQL 5 client is installed. The next step is installing MySQL 5 server, if you want to have a MySQL 5 server on the same server as your web server. MySQL 5 server installation is quite easy.

Download the compiled binaries from and install them. As we said before, if your server is based on an Intel CPU, you should download the “Linux (non rpm, Intel C/C++ compiled, glibc-2.3) downloads” version. That is the version we downloaded, so the step-by-step of installing this package would be the following:

cd /root
tar -xvzf mysql-5.0.37-linux-i686-icc-glibc23.tar.gz
mv mysql-5.0.37-linux-i686-icc-glibc23 mysql
groupadd mysql
useradd -g mysql mysql
mv mysql /usr/local
cd /usr/local/mysql
scripts/mysql_install_db –user=mysql
chown -R root  .
chown -R mysql data
chgrp -R mysql .
bin/mysqld_safe –user=mysql &

Note the path where MySQL will be installed: /usr/local/mysql.

Edit /etc/profile and add :/usr/local/mysql/bin at the end of the PATH statement.


Gabriel Torres is a Brazilian best-selling ICT expert, with 24 books published. He started his online career in 1996, when he launched Clube do Hardware, which is one of the oldest and largest websites about technology in Brazil. He created Hardware Secrets in 1999 to expand his knowledge outside his home country.