部署MySQL双实例

MySQL双实例是指在同一台机器上通过不同端口运行多个独立的MySQL服务进程。这种部署方式适用于伪分布式架构和提高从库恢复效率。部署过程包括前期准备、安装多实例等步骤,配置文件需按需求定制,启动脚本如/etc/init.d/mysql3307。此外,参考链接提供了MySQL性能测试信息。

什么是MySQL双实例或者多实例?
就是在一台机器上面开启多个不同的端口,运行多个MySQL服务进程。这些MySQL多实例公用一套安装程序,使用不同的(也可以是相同的)配置文件,启动程序,数据文件。在提供服务时候,多实例MySQL在逻辑上看来是各自独立的,多个实例的自身是根据配置文件对应的设定值,来取得相关硬件资源的多少。
应用场景
伪分布式架构,项目启动初期又不一定有那多的用户量,为此先一组物理数据库服务器,但部署多个实例,方便后续迁移。一台物理数据库服务器支撑多个数据库的数据服务,为提高mysql复制的从机的恢复效率,采用多实例部署
部署过程
前期准备

#yum install tcl gcc gcc-c++  make bzip2 cmake ncurses ncurses-devel wget mailx lsof -y
#vim /etc/security/limits.conf
*   soft    nofile  655350
*   hard    nofile  655350
*   soft    nproc   655350
*   hard    nproc   655350
#sed -i 's/1024/655350/' /etc/security/limits.d/90-nproc.conf
#ulimit -n 655350
#vim /etc/mail.rc
set from=bj-122.mysql<autoreport@yyy.net> smtp=mail.yyy.net
set smtp-auth-user=xxxxx@yyy.net smtp-auth-password=xxxxxxxx
set smtp-auth=login

安装多实例
安装步骤在mysql源码安装包解压之后目录里的INSTALL-SOURCE文件中5488-5506行,具体的配置文件需要按照不同的需求进行配置

#groupadd mysql
#useradd -r -g mysql mysql
#tar jxf mysql-5.6.27.tar.gz
#cd mysql-5.6.27    
#cmake .
#make –j4 && make install
#cd /usr/local/mysql
#chown -R mysql.mysql .
#mkdir -p /data/mysql/330{7,8}
# mkdir -p /back/binlog/330{7,8}
#scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/3307 --user=mysql
#scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/3308 --user=mysql
#vim /data/mysql/3307/my.cnf
#vim /data/mysql/3308/my.cnf
#chown -R mysql.mysql /data/mysql
#chown -R mysql.mysql /back/binlog
#vim /etc/init.d/mysql3307
#vim /etc/init.d/mysql3308
#chmod +x /etc/init.d/mysql330{7,8}
#ln -s /usr/local/mysql/bin/* /usr/bin/
#/etc/init.d/mysql3307 start
#/etc/init.d/mysql3308 start
#mysqladmin -uroot password “123456” -S /data/mysql/3307/mysql.sock
#mysqladmin -uroot password “123456” -S /data/mysql/3308/mysql.sock
#mysql -uroot -p123456 -S /data/mysql/3307/mysq.sock
#mysql -uroot -p123456 -S /data/mysql/3307/mysq.sock

其中,进程启动脚本/etc/init.d/mysql3307,

#!/bin/sh
#init
port=3307
mysql_user="root"
mysql_pwd="123456"
CmdPath="/usr/bin"

#startup function
function_start_mysql()
{
    printf "Starting MySQL...\n"
    /bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/mysql/3307/my.cnf 2>&1 > /dev/null &
}

#stop function
function_stop_mysql()
{
    printf "Stoping MySQL...\n"
    ${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/mysql/3307/mysql.sock shutdown
}

#restart function
function_restart_mysql()
{
    printf "Restarting MySQL...\n"
    function_stop_mysql
    sleep 2
    function_start_mysql
}

case $1 in
start)
    function_start_mysql
;;
stop)
    function_stop_mysql
;;
restart)
    function_restart_mysql
;;
*)
    printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac

Bonus: http://www.linuxeye.com/Linux/1914.html MySQL性能测试,with Jemalloc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值