BobCares :: Outsourced Web Hosting Support BobCares :: Outsourced Web Hosting Support   Call us Toll Free US: 1-602-288-9145
Toll Free: 1800-383-5193
Search site:

Contact us | Get custom quote
 
spacer.gif
spacer.gif  
4006 Reads
Add to Google AddThis Social Bookmark Button

Running Multiple MySQL versions

Posted on Thursday, May 18, 2006 - 01:54 AM
  spacer.gif
 
Sometimes we may require to run multiple versions of MySQL on the same Server. This can happen if you either need to test a new MySQL release or you need a new MySQL version and you don't want to make any changes to the existing system.

The whole idea behind this is to compile the new MySQL server with different TCP/IP ports and Unix socket files so that each one is listening on different network interfaces. Compiling in different base directories for each installation also results in separate compiled-in data directory, log file, and PID file location for each server.

First download the source the tar file from mysql.com.

$> tar xfz mysql.tar.gz 
$> cd mysql.XX

  • Important **
    "/etc/my.cnf " is the default file that is used by a mysql server. When the new version is tested it will load the default configuration's in /etc/my.cnf.

To resolve this I replaced every instance of " cnf " inside the source folder to " conf " by using this following command.

find ./ -type f | xargs perl -pi -w -e 's/cnf/conf/g;'


1) The default user generally is "mysql". Add another user and group for example mysqlt for the new version of MySQL.

2) A typical ./configure command...

   ./configure --prefix=/usr/local/mysql --enable-local-infile 
   --with-tcp-port=4444 --with-mysqld-user=mysqlt 
   --with-base_dir=/usr/local/mysql --with-log=/usr/local/mysql/mysqld.log 
   --with-pid_file=/usr/local/mysql/mysqld.pid 
    -with-unix-socket-path=/tmp/mysqlt.sock --localstatedir=/var/lib/mysqlt
The new values you will use for your new MySQL server are:
    Port number : 4444 
mysql user : mysqlt
base_dir : /usr/local/mysql
data directory : /var/lib/mysqlt
log file : /usr/local/mysql/mysqld.log


3) Compile and Install

make && make install 

4)Create your new MySQL config file.

 cp support-files/my-medium.conf /etc/my.conf 

  cd /usr/local/mysql 
bin/mysql_install_db --user=mysqlt
( this will install all the needed databases ) bin/mysqld_safe --user=mysqlt &


TO SET A PASSWORD FOR THE MySQL root USER

  /usr/local/mysql/bin/mysqladmin -u root -h hostname password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'


5) To start the service

cd /usr/local/mysql 
./share/mysql/mysql.server start

6) To test

#telnet localhost 4444

and you should see this Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+ 4.0.26-logIE^*THL

And you are done. You can copy mysql.server >> rc.d to start it when the server is rebooted.


With these steps, you can download and configure different mysql versions to use different values for port, datadirectory, mysql user, configuration file etc....


Warning: You should never have two servers that update data in the same databases.



Articles by Lincy Peyoli About the author: Lincy Reymond is a Linux system administrator who works for Bobcares. She
specializes mainly on Linux Plesk Servers

 
spacer.gif
spacer.gif spacer.gif spacer.gif spacer.gif
Online
There are 20 guests and 0 members online.
 
FAQ | AUP | Partners | Contact Us | RSS RSS | Sitemap
© Poornam Info Vision LLC. All rights reserved.
Call us Toll Free: 1800-383-5193