mysql一机多实例配置

Life is short , play more!
本文来自lihao's Blog,转载请注明。

1. 网上有人写过教程,但是写的并不详细。只是告诉你怎么写配置文件和如何启动和停止实例。

由于工作,我也亲自配置了一下mysql启动多个实例。

a) 配置文件。 例如 [mysqld_muti] 和 [mysqld1] 这个必须需要配置,需要多个实例,就增加mysqd的配置。

[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = root

[mysqld1]
socket = /tmp/mysql1.sock
port = 3306
pid-file = /data/mysqld1/1.pid
datadir = /data/mysqld1/
log = /data/mysqld1/1.log
user = mysql

[mysqld2]
socket = /tmp/mysql2.sock
port = 3307
pid-file = /data/mysqld2/2.pid
datadir = /data/mysqld2/
log = /data/mysqld2/2.log
user = mysql

b) 因为mysql服务启动默认会有mysql和test这个库,而mysql这个库是mysql启动时需要用到的。所以我们把
mysql库的数据文件拷贝至我们想要启动的实例的数据库路径。并赋予mysql可读写的权限。 (这一步不做的话,启动实例会报找不到mysql.host ,等找不到mysql数据库的错误)

c) 配置好后,mysqld_multi –config-file=/etc/my.cnf.test start 1,2

这样就启动了。

d) ps -ef|grep mysqld 看是否mysql实例已经启动

e) 每个实例的日志分别在各自的datadir下。 请自行查找 *.err 的文件,并查看什么启动错误,好定位问题。

f) 停止实例 mysqld_multi –config-file=/etc/my.cnf.test stop 1,2

启动完毕后,可以访问各实例了。 mysql -P 3307/3306 -h 127.0.0.1 (如果想帮定不同ip的同各端口, 则需要加入bind_ipaddress 参数)


发表评论

电子邮件地址不会被公开。 必填项已用*标注