多实例服务:
原理:
就是在一台服务器上开启多个不同的mysql服务端口,运行一个
mysql服务进程对应多个端口,有各自的数据库目录。这些进程通过不同
的socket监听不同的服务端口,以此来提供不同的服务
多个实例共用一套安装程序,但是各有各的配置文件,数据文件,进程
及日志文件。
为什么要做多实例:
1.资源隔离,减少相互影响
2.分担连接数(否则连接数上升性能会下降)
3.更充分的利用资源(不同的业务错高峰混跑)
优点:
有效的利用服务器资源
当单个服务器资源有剩余时,可以利用多实例来充分利用服务器的资源来提供
更多的服务
缺点:
会出现资源互相抢占的现象。当某个实例的并发量很高,或者有慢查询时,会消耗服务器更多的资源,这时就会影响其他实例提供的服务,访问质量下降。
应用场景:
公司有不同业务数据库要各自独立的需求,同时访问量也不怎么大,服务器资
源也有空余的,应该使用
]# vim /etc/my.cnf
[mysqld_multi] //启用多实例
mysqld = /usr/local/mysql/bin/mysqld_safe //指定进程文件路径
mysqladmin = /usr/local/mysql/bin/mysqladmin //指定管理命令路径
user = root //指定进程用户
第一个实例
[mysqld1] //实例进程名称
server-id=1 //身份标识
basedir=/usr/local/mysql56/ //指定mysql安装路径
port=3307 //端口号
datadir=/dir1 //数据库目录 ,要手动创建
socket=/dir1/mysqld1.sock //指定sock文件的路径和名称
pid-file=/dir1/mysqld1.pid //进程pid号文件位置
log-error=/dir1/mysqld1.err //错误日志位置
第二个实例
[mysqld2]
port=3308
datadir=/dir2
socket=/dir2/mysqld2.sock
pid-file=/dir2/mysqld2.pid
log-error=/dir2/mysqld2.err
弄完初始化数据库
每个实例想要不同的数据库版本就在不同的目录下去进行初始化