部署MySQL双实例

来源:互联网 发布:xlsx软件 编辑:程序博客网 时间:2024/05/21 10:41

什么是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.rcset from=bj-122.mysql<autoreport@yyy.net> smtp=mail.yyy.netset smtp-auth-user=xxxxx@yyy.net smtp-auth-password=xxxxxxxxset 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#initport=3307mysql_user="root"mysql_pwd="123456"CmdPath="/usr/bin"#startup functionfunction_start_mysql(){    printf "Starting MySQL...\n"    /bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/mysql/3307/my.cnf 2>&1 > /dev/null &}#stop functionfunction_stop_mysql(){    printf "Stoping MySQL...\n"    ${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/mysql/3307/mysql.sock shutdown}#restart functionfunction_restart_mysql(){    printf "Restarting MySQL...\n"    function_stop_mysql    sleep 2    function_start_mysql}case $1 instart)    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

0 0