在一台服务器上,可以通过mysqld_multi配置多个Mysql实例运行。
假设服务器上现在已经运行一个MYSQL实例,数据目录是/var/lib/mysql,端口是3306,所用的SOCKET连接文件位于/tmp/mysql.sock。那么可以按照如下步骤,再启动一个或者多个实例。
一,创建新实例的数据目录
新启动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
这就完成了。只是要数据目录和权限,然后是配置文件 ,当然这里的配置文件 ,我都是很简单的配置,实际情况,肯定不是这样的,可能还会有一些基于特定实例的优化参数。