mysql的多实例有两种方式可以实现:
第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势是逻辑简单,配置简单,缺点是管理不便。
第二种是通过官方自带的mysqld_multi使用单个配置文件,这种方式定制每个实例的配置不太方面,优点是集中管理。
一,多配置文件方式,以3307事例为例
1,修改配置文件
cp /etc/my.cnf /opt/3307 && cd /opt/3307 && vim my.cnf
[mysqld]
datadir=/opt/3307
port = 3307
socket = /var/lib/mysql/mysql3307.sock
log-error = /opt/3307/3307.err
log-bin = /opt/3307/3307.bin
pid-file = /opt/3307/mysql3307.pid
2,初始化数据库
mysql_install_db --defautls-file=./my.cnf --user=mysql
3,启动新事例
chown mysql. * -R
/usr/bin/mysqld_safe --defaults-file=./my.cnf --user=mysql &
4,更改原来密码:
mysqladmin -uroot -p password 'password' -S /var/lib/mysql/mysql3308.sock
5,关闭事例
mysqladmin -uroot -p'mysql' --socket=/var/lib/mysql/mysql3307.sock shutdown
二,mysqld_multi的管理,以3308,3309实例为例
1,各个事例初始化数据库-->更改密码后往下进行:
vim /etc/my.cnf
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = root
password = mysql
[mysqld1]
datadir=/opt/multi/3308
port = 3308
socket = /var/lib/mysql/mysql3308.sock
log-error = /opt/multi/3308/3308.err
log-bin = /opt/multi/3308/3308.bin
pid-file = /opt/multi/3308/3308.pid
[mysqld2]
datadir=/opt/multi/3309
port = 3309
socket = /var/lib/mysql/mysql3309.sock
log-error = /opt/multi/3309/3309.err
log-bin = /opt/multi/3309/3309.bin
pid-file = /opt/multi/3309/3309.pid
2,mysqld_multi启动
mysqld_multi --defaults-file=./my.cnf start 1,2 >/dev/null 2>&1
3,mysqld_multi关闭
mysqld_multi --defaults-file=./my.cnf stop 1,2 >/dev/null 2>&1