MySQL多实例运行

MySQL多实例运行
更新 2010年10月19日
    最近几天研究了一下怎么让 mysql 实现多实例运行,当然也是有需求才研究的。当然少不了要看许多网上的文章和官方手册。
一共总结出 3 种多实例启动的方法:第一种:安装两个 msyql ,在启动时指明不同的 port defaults-file 即可。第二种:使用 mysqld_multi ,创建一个配置文件然后用 mysqld_multi 读取配置文件来启动多实例。第三种:使用 MySQL 实例管理器并创建用户账户,这个方法好像比较好不过也有点复杂。这些方法都可以在官方文档中找到,就不细说了,中文的也很好找。
下面是我在采用第二种方法时的心得体会。
 
一、 为什么这么做。
听一个搞 .net 开发的人说,这么做可以防止 mysql 线程调度中产生的瓶颈问题。别的原因就不知道了,反正有这个需求。
二、 基本知识。
每个实例应该在自己的 datadir 下配置 my.cnf 文件。
配置文件的查找顺序如下:
第一搜,首先读取 /etc/my.cnf
第二搜, $datadir/my.cnf ,在 data 目录下寻找此配置文件,每个实例应该在自己的 datadir 下配置 my.cnf 文件。
第三搜, defaultfile=/path/my.cnf 通常写在命令行上, mysqld_safe defaultfile=/tmp/my.cnf & 等执行。
第四搜, ~/my.cnf 当前用户下的配置文件。
PS :这些都是网上抄来的。
三、 安装 mysql
无外乎源码和 rpm 等方式嘛,就不多说了。
四、 准备目录。
这步还是比较重要的。
如果安装的时候进行了 mysql_install_db 这个操作的话,会在 mysql datadir 下面创建 msyql test 两个文件夹,还有几个 log 文件。例如:
01
多实例同时运行的话需要自行创建另一个 datadir 。我的环境中是 /var/lib/mysql2 ;把 mysql1 里面的拷贝过来或者在 mysql2 目录里面再运行一次 mysql_installdb --datadir=path 都行。
做完后要注意目录权限 mysql 用户要可写。
五、 创建配置文件。
02
原来 my.cnf 文件中的 mysqld 段全部注释。
my_multi.cnf 文件名可以随便起,以后在命令中写对了就行了。
再有就是要注意 pid-file log log-error 这些个文件的存放位置要 mysql用户可写 。另外需要注意 pid文件要事先创建好
PS:2010年10月19日又做了一下,写在my.cnf里面也是可以的。
六、 启动实例。
启动前要保证 PATH 里面包括 mysql bin 目录。可以把下面的命令写入 /etc/profile
export PATH=$PATH:/usr/local/webserver/mysql/bin
启动命令是: #/path/to/mysqld_multi --config-file=/path/to/my_multi.cnf start 1,2    写入 /etc/rc.local 就可以开机自动启动两个实例了。
七、 验证。
#netstat -alpn|grep 33
#mysql -u root -h localhost –S /tmp/mysqld1.sock
#mysql -u root -h 127.0.0.1 -P 3301
连上后可以看看 datadir 是不是对的: mysql> show variables like '%datadir%';

你可能感兴趣的:(linux,数据库,mysql,multi,instance,多实例)