mysql 多实例_MySQL多实例配置方案

1.1 什么是Mysql多实例?

简单的说,Mysql多实例就是在一台服务器上同时开启多个不同的服务端口(如 : 3306/3307/3308)同时运行多个Mysql服务器,这些服务进程通过不同的socket来监听不同的服务端口来提供服务

这些Mysql多实例共用一套Mysql安装程序,使用不同的my.cnf配置文件,启动程序,和数据文件,在提供服务时,多实例Mysql在逻辑上来看是各自独立的,他们根据配置文件对应设定值,获得服务器相应的资源

1.2 多实例配置思路:

1.      多套独立目录

2.      每个实例有独立的数据(初始化数据)

3.      多个端口

4.      多个socket

5.      多个启动程序

6.      多个日志文件

1.3 多实例配置过程:

1.3.1 创建独立目录:

mkdir -p /data/{3307,3308}

chown –R mysql.mysql /data

1.3.2 编写每个实例的配置文件:

[root@db01 ~]# cat /data/3307/my.cnf

[mysqld]

basedir=/application/mysql

datadir=/data/3307

socket=/data/3307/mysql.sock

log-error=/data/3307/mysql.log

log_bin=/data/3307/mysql-bin

binlog_format=row

skip_name_resolve=1

server_id=3307

port=3307

1.3.3 初始化数据:

./mysql_install_db  --defaults-file=/data/3307/my.cnf --basedir=/application/mysql --datadir=/data/3307 --user=mysql

1.3.4 启动实例:

sh mysqld_safe --defaults-file=/data/3307/my.cnf --pid-file=/data/3307/3307.pid  &

shell脚本管理多实例服务:

#!/bin/bash

. /etc/init.d/functions

. /etc/profile

Start='/application/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf --pid-file=/data/3307/3307.pid'

Stop='mysqladmin -uroot -S /data/3307/mysql.sock shutdown'

Port=`ss -tunlp|grep 3307|wc -l`

function START(){

if [ $Port -ne 1 ];then

$Start >/dev/null 2>&1 &

sleep 3

if [ $? -eq 0 ];then

action 'MySQL 3307 Starting' /bin/true

fi

else

action 'MySQL 3307 Already Exists' /bin/true

fi

}

function STOP(){

if [ $Port -ne 0 ];then

$Stop

if [ $? -eq 0 ];then

action 'MySQL Stoping Successfuly' /bin/true

fi

else

action 'MySQL already Stoped' /bin/true

fi

}

function RESTART(){

STOP

sleep 1

START

}

case $1 in

start)

START

;;

stop)

STOP

;;

restart)

RESTART

;;

*)

echo "Usage: $0 {start|stop|restart}"

;;

esac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值