生产环境中,一台mysql物理机服务器会安装多台mysql服务器,但是在默认情况下一台linux物理机只能安装运行一台mysql服务器。下面就是实现mysql单机多实例的方法:

   本次实验环境为rhel4.6.,实验用到的mysql软件是rhel4.6系统盘自带的rpm包。

实验过程:

#mount /dev/cdrom /media

#cd /media/RedHat/RPMS/

#rpm -Uvh gcc-3.4.6-9.i386.rpm gcc-c++-3.4.6-9.i386.rpm

#rpm -Uvh ncurses-devel-5.4-15.el4.i386.rpm

#rpm -Uvh mysql-4.1.20-2.RHEL4.1.0.1.i386.rpm

#rpm -Uvh mysql-devel-4.1.20-2.RHEL4.1.0.1.i386.rpm mysql-server-4.1.20-2.RHEL4.1.0.1.i386.rpm openssl-devel-0.9.7a-43.17.el4_6.1.i386.rpm perl-DBD-MySQL-2.9004-3.1.i386.rpm krb5-devel-1.3.4-54.i386.rpm zlib-devel-1.2.1.2-1.2.i386.rpm e2fsprogs-devel-1.35-12.11.el4.i386.rpm

到这里,单个mysql安装完毕,现在启动mysql:

#service mysqld start

[root@localhost ~]# mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 5 to server version: 4.1.20


Type 'help;' or '\h' for help. Type '\c' to clear the buffer.


mysql> show databases;

+----------+

| Database |

+----------+

| mysql    |

| test     |

+----------+

2 rows in set (0.00 sec)


mysql> exit

查看mysql进程,找到有用的信息:

# ps aux |grep mysqld

root     26863  0.0  0.2  5304 1248 pts/1    S    21:28   0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --pid-file=/var/run/mysqld/mysqld.pid

mysql    26896  0.0  3.5 126376 18220 pts/1  Sl   21:28   0:00 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr--datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --socket=/var/lib/mysql/mysql.sock

上面黑体字标出来的就是有用信息,用蓝色标出来的就是数据库里的数据信息,斜线标出的为没有用的信息。

现在,拷贝蓝色标出来的代码:
#cp -r /var/lib/mysql /var/lib/mysql2

(#cp -r /var/lib/mysql /var/lib/mysql3)

(。。。)


然后启动新配置的数据库,默认情况下mysql的端口号为3306,这里将端口号改为3307,为了避免不必要的用户权限问题,这里将用户指定为root:

#/usr/libexec/mysqld --datadir=/var/lib/mysql2 --user=root --pid-file=/var/run/mysqld/mysqld2.pid --socket=/var/lib/mysql/mysql2.sock --port=3307 &

(#/usr/libexec/mysqld --datadir=/var/lib/mysql3 --user=root --pid-file=/var/run/mysqld/mysqld3.pid --socket=/var/lib/mysql/mysql3.sock --port=3308 &)

ok,到这里就可以登录数据库了,即在一台物理机上运行多个mysql数据库实例。

有两证方式登录数据库,分别是基于socket方式和基于端口方式的,实验表明,这两中登录方式可以混着用。如:

#mysql --socket=/var/lib/mysql/mysql.sock

#mysql --socket=/var/lib/mysql/mysql2.sock

#mysql --socket=/var/lib/mysql/mysql3.sock  ###基于socket方式登录mysql


#mysql -h 127.0.0.1 -P 3306

#mysql -h 127.0.0.1 -P 3307

#mysql -h 127.0.0.1 -P 3308     ###基于端口方式登录mysql

实验截图:

mysql单机多实例——方法1_mysql单机多实例

mysql单机多实例——方法1_mysql单机多实例_02

mysql单机多实例——方法1_mysql单机多实例_03

mysql单机多实例——方法1_mysql单机多实例_04