Question: How to make a second mysql server running on the same machine with another port and other directory ?
Answer :
To do this, follow the steps as described beollow:
1- Create new database instance on new destination
mkdir /mysql2/mysql
mkdir /mysql2/mysql/data
mkdir /mysql2/mysql/log
mkdir /mysql2/mysql/run
mkdir /mysql2/mysql/lock
chown -R mysql:mysql /mysql2/mysql
mysql_install_db --datadir=/mysql2/mysql/data --user=mysql
2- Create new configuration file for new instance
/etc/my.server2.cnf
[mysqld]
port=3307
datadir=/mysql2/mysql/data
socket=/mysql2/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
log-bin =/mysql22/mysql/log/mysql-bin.log
[mysqld_safe]
log-error=/mysql2/mysql/log/mysqld.log
pid-file=/mysql2/run/mysqld.pid
[isamchk]
[myisamchk]
3-Create new init script
vi /etc/rc.d/init.d/mysqld.server2
4-Enable auto startup for new instance and start it
chmod +x /etc/init.d/mysqld.server2
chkconfig mysqld.server2 on
service mysqld.server2 start
5-Set new root mysql password
mysqladmin -P 3307 --protocol=tcp -u root password 'NEWPASSWORD
6-Connect and check the new database
[root@centos-unixmen~]# mysql -P 3307 --protocol=tcp -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 11
Server version: 5.0.45-log Source distribution
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.00 sec)
mysql>
7-Check the running Daemons.:
[root@centos-unixmen~]# ps -ef | grep -i sql
root 1807 1 0 May23 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql 1896 1807 0 May23 ? 00:44:10 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root 6641 1 0 17:05 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/my.server2.cnf --datadir=/mysql2/mysql2/data --socket=/mysql2/mysql/data/mysql.sock --log-error=/mysql2/mysql/log/mysqld.log --pid-file=/mysql2/mysql/run/mysqld.pid
mysql 6735 6641 0 17:05 ? 00:00:00 /usr/libexec/mysqld --defaults-file=/etc/my.server2.cnf --basedir=/usr --datadir=/mysql2/mysql/data --user=mysql --log-error=/mysql2/mysql/log/mysqld.log --pid-file=/mysql2/mysql/run/mysqld.pid --socket=/mysql2/mysql/data/mysql.sock --port=3307
root 7086 7062 0 18:37 pts/0 00:00:00 grep -i sql
Please enjoy