手记

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%';

©著作权归作者所有:来自51CTO博客作者sharkyan的原创作品,如需转载,请注明出处,否则将追究法律责任

linuxmysql数据库数据库相关


0人推荐
随时随地看视频
慕课网APP