在一台服务器上,可以通过mysqld_multi配置多个Mysql实例运行。


一,创建新实例的数据目录


新启动MySQL实例之后,其数据位于哪个目录,就是实例相关的数据库文件都准备放在哪个目录下,假定我把它们放在 /var/lib/mysql2 目录下。


mkdir /var/lib/mysql2   创建目录。


chown mysql /var/lib/mysql2  给mysql用户权限。


二,创建数据库


这一步是在刚刚建立的目录下面,初始化数据库。


bin/mysql_install_db --user=mysql --datadir=/var/lib/mysql2   // 将mysql等系统数据库安装到实例准备运行的目录。


三,配置文件


修改配置文件 my.cnf,这也是最重要的一步。主要是重新设置每个实例的pid-file,socket,port等属性,我的配置文件 如下:


[mysqld_multi]  

mysqld     = /install/mysql/bin/mysqld_safe  

mysqladmin = /install/mysql/bin/mysqladmin  

user       = root  


# The MySQL server  

[mysqld1]  

port            = 3306  

socket          = /tmp/mysql.sock  

datadir         =/var/lib/mysql  

pid-file        =/var/lib/mysql/mysql.pid  

user            =mysql  


log-bin         =master-bin  

log-bin-index           =master-bin.index  

server-id       =1  

[mysqld2]  

port            = 3307  

socket          =/tmp/mysql2.sock  

datadir         =/var/lib/mysql2  

pid-file        =/var/lib/mysql2/mysql.pid  

user            =mysql  


四,启动实例


在配置文件配置好之后,就可以启动了


/install/mysql/bin/mysqld_multi start 2    // 这样就启动了。


五,打开控制台


在启动新的实例之后,也可以打开控制台操作,但要指定socket和端口等信息,如:


mysql --user=root --port=3307 --socket=/tmp/mysql2.sock -p