Mysql-5.6 二进制多实例部署(上)

2021-06-08 18:15:26 浏览数 (1)

一.简介

MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务:

特点:

  1. 有效利用服务器资源,当单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务。
  2. 节约服务器资源
  3. 资源互相抢占问题,当某个服务实例服务并发很高时或者开启慢查询时,会消耗更多的内存、CPU、磁盘IO资源,导致服务器上的其他实例提供服务的质量下降;

部署方式: 第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便

第二种是通过官方自带的mysqld_multi使用单独的配置文件来实现多实例,这种方式定制每个实例的配置不太方面,优点是管理起来很方便,集中管理

同一开发环境下安装两个数据库,必须处理以下问题

  • 配置文件安装路径不能相同
  • 数据库目录不能相同
  • 启动脚本不能同名
  • 端口不能相同
  • socket文件的生成路径不能相同

二.环境声明

1.环境

代码语言:javascript复制
[mysql-Server]    
主机名 = host-1    
系统 = centos-7.3    
地址 = 1.1.1.1    
软件 = mysql-5.6.39 3306

三.程序部署

1.安装依赖 yum -y install autoconf libaio bison ncurses-devel

2.创建用户 groupadd mysql useradd -g mysql -s /sbin/nologin mysql

3.清理centos7 默认自带数据库 yum -y remove mariadb mariadb-server

4.下载 wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

tar -xf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql

创建相关目录,确保区分开 mkdir -p /data/mysql/{mysql_3306,mysql_3307} mkdir /data/mysql/mysql_3306/{data,log,tmp} mkdir /data/mysql/mysql_3307/{data,log,tmp}

mysql即使root启动还是mysql用户运行的,所以要给权限 chown -R mysql:mysql /usr/local/mysql chown -R mysql:mysql /data/mysql

5.添加环境变量 echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile source /etc/profile

6.复制my.cnf文件到etc目录 rm -rf /etc/my.cnf cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

0 人点赞