MYSQL 多实例安装

MySQL进行多实例配置再生产环境中非常常见,比如一些高配置数据库服务器,就会跑多个MySQL实例,借助多实例绑定的方式提高服务器的整体资源利用率。另外在MySQL5.7以上版本还不支持多源复制时,当你有多个主时,也可以使用一台服务器开多个MySQL实例做从。

MySQL多实例配置一般有两种方式:

第一种:基于mysqld_multi来实现。mysqld_multi用于管理多个mysqld的服务进程,这些mysqld服务进程程序可以用不同的socket或是监听于不同的端口,同时将数据文件分布到不同的磁盘以分散IO。mysqld_multi提供简单的命令用于启动,关闭和报告所管理的服务器的状态。从而减少生产环境的维护成本,方便后续的迁移和清理等工作。

第二种:使用每一个实例一个配置文件的方式,个人更倾向于使用这种方式。

本文使用第二种方式进行演示MySQL多实例配置

 

安装二进制版MYSQL;

  1、)下载:

    cd /data/tools  #此目录为存放软件目录,自己根据自己的实际情况定义;

    wget http://mirror.neu.edu.cn/mysql/Downloads/MySQL-5.6/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz

  2、)解压:

    tar -xzvf mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz

  3、)移动到/usr/local/mysql-5.6.27:

    mv mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz /usr/local/mysql-5.6.27

    ln -s /usr/local/mysql-5.6.27 /usr/local/mysql  #软连接

  4、)创建用户组

    groupadd -g 3306 mysql

    useradd -u 3306 -g mysql -s /sbin/nologin -M mysql

    chown -R mysql.mysql /usr/local/mysql

  5、)创建多实例相关目录:

    mkdir -pv /data/mysql_3306

    mkdir -pv /data/mysql_3307

    mkdir -pv /data/mysql_3306/{data,log}

    mkdir -pv /data/mysql_3307/{data,log}

    chown -R mysql.mysql /data

  6、)初始化多个实例:

    /usr/local/mysql/scripts/mysql_install_db --datadir=/data/mysql_3306/data --user=mysql

    /usr/local/mysql/scripts/mysql_install_db --datadir=/data/mysql_3307/data --user=mysql

    查看各实例初始化文件

    

  7、)输出执行文件:

    vim /etc/profile.d/mysql.sh

      export PATH=$PATH:/usr/local/mysql/bin

    source /etc/profile.d/mysql.sh

  8、):添加服务器脚本:

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    chmod +x /etc/init.d/mysqld

    chkconfig --add mysqld

    chkconfig mysqld on

  9、)添加配置文件:

    vim /etc/my3306.cnf

      

[client]
user=root
port=3306
socket=/tmp/mysql.sock

[mysqld]
user=mysql
basedir = /application/mysql
datadir=/data/mysql_3306/data
pid-file=/data/mysql_3306/data/mysql_3306.pid
port=3306
server_id=3306
socket=/tmp/mysql_3306.sock
character_set_server = utf8
skip_name_resolve = 1
max_connections = 800
max_connect_errors = 1000
max_allowed_packet = 16777216
log-error = /data/mysql_3306/log/error.log
binlog_format = mixed
expire_logs_days = 30
log-bin = /data/mysql_3306/log/mysql-bin.log
log-bin-index = /data/mysql_3306/log/mysql-bin.index

 

    vim /etc/my3307.cnf

 

[client]
user=root
port=3307
socket=/tmp/mysql.sock

[mysqld]
user=mysql
basedir = /application/mysql
datadir=/data/mysql_3307/data
pid-file=/data/mysql_3307/data/mysql_3306.pid
port=3307
server_id=3307
socket=/tmp/mysql_3307.sock
character_set_server = utf8
skip_name_resolve = 1
max_connections = 800
max_connect_errors = 1000
max_allowed_packet = 16777216
log-error = /data/mysql_3307/log/error.log
binlog_format = mixed
expire_logs_days = 30
log-bin = /data/mysql_3307/log/mysql-bin.log
log-bin-index = /data/mysql_3307/log/mysql-bin.index

 

  10、)启动MySQL实例:

    mysqld_safe --defaults-file=/etc/my3306.cnf &

    mysqld_safe --defaults-file=/etc/my3307.cnf &

    查看监控端口:

      

    连接各个实例

      mysql -S /tmp/mysql_3306.sock

      mysql -S /tmp/mysql_3307.sock

MySQL多实例已经配置完成

 

    

 

    

posted @ 2016-09-26 16:42  thislife002  阅读(143)  评论(0)    收藏  举报