MySQL (mariadb)多实例应用与多实例主从复制

  

MySQL多实例

  

mysql多实例,简单理解就是在一台服务器上,mysql服务开启多个不同的端口(如3306、3307、3308),运行多个服务进程。这些mysql服务进程通过不同的套接字来监听不同的数据端口,进而互不干涉的提供各自的服务。

  

在同一台服务器上,mysql多实例会去共用一套mysql应用程序,因此在部署mysql的时候只需要部署一次mysql程序即可,无需多次部署。但是,mysql多实例之间会各自使用不同配的my . cnf中所做置文件,启动程序和数据文件。在提供服务方面,mysql多实例在逻辑上看起来是各自独立,互不干涉的,并且多个实例之间是根据配置文件的设定值,来获取相关服务器的硬件资源。

  

多实例应用场景

  
      <李>   

    当一个公司业务访问量不太大,又想节俭成本,并且还希望不同业务的数据库服务能够各自尽量独立,提供服务能够互相不受影响。另外还需要应用主从同步等技术来提供数据库备份或读写分离服务,以及方便后期业务量增大时,数据库架构的扩展和迁移。

      李   <李>   

    公司业务访问量不是太大的时候,服务器的资源基本都是过剩状态。此时就很适合mysql多实例的应用。如果对SQL语句优化做的比较好,mysql多实例是一个很值得去使用的技术。

      李   <李>测试环境,公司中会需要数据库环境来测试业务,在单机上部署多实例也能够节省成本李   
  

MySQL多实例实现方式

  

mysql多实例常规来讲,有三种方案可以实现,这三种方案各有利弊,如下:

  
      <李>基于多配置文件通过使用多个配置文件来启动不同的进程,以此来实现多实例。   
  

优点:逻辑简单,配置简单

  

缺点:管理起来不方便

  
      <李>基于mysqld_multi通过官方自带的mysqld_multi工具,使用单独配置文件来实现多实例   
  

优点:便于集中管理管理

  

缺点:不方便针对每个实例配置进行定制

  
      <李>基于即时通讯使用MySQL实例管理器(MYSQLMANAGER),这个方法好像比较好不过也有点复杂   
  

优点:便于集中管理

  

缺点:耦合度高.IM一挂,实例全挂

  

不方便针对每个实例配置进行定制

  

本章内容采用第一种方式来是实现,(一个人倾向于这种方式),数据库采用mariadb来代替mysql,过程都一样

  

<强>系统与安装版本信息
操作系统:Centos6.9
数据库:mariadb-10.2.15.tar.gz
三个实例:3306、3307、3308

  

MySQL多实例安装

  
安装mysql h5>   <李>安装依赖包李      
 <代码> yum安装野牛bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c + + cmake libevent-devel gnutls-devel libaio-devel openssl-devel ncurses-devel libxml2-devel  
  

<>强创建mysql用户组

  
  

useradd - r mysql      

<>强创建实例数据库目录
各实例的数据库目录,配置文件目录,启动程序目录都存放在单独的目录位置,结构如下:

  
 <代码> [root@localhost ~] # mkdir - p/数据/mysql/{3306、3307、3308}/{数据等,日志,套接字,本}
  root@localhost ~ #树/数据/数据
  ├──+发现丢失
  └──mysql
  ├──3306年
  │├──垃圾箱
  │├──数据
  │├──等等
  │├──日志
  │└──插座
  ├──3307年
  │├──垃圾箱
  │├──数据
  │├──等等
  │├──日志
  │└──插座
  ├──3308年
  │├──垃圾箱
  │├──数据
  │├──等等
  │├──日志
  │└──插座
  └──mysqld  
  

<>强解压安装源码包

  
 <代码> [root@localhost ~] #焦油zxvf mariadb-10.2.15
  # cd mariadb-10.2.15 root@localhost ~
  
  #编译
  cmake -DCMAKE_INSTALL_PREFIX=/usr/地方/mysql -DCMAKE-USER mysql -DMYSQL_DATADIR=mysql -DCMAKE-GROUP==/数据/mysql -DWITHOUT_TOKUDB=1  
  
  

如果执行cmake提示:cmake错误在存储/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler。cmake: 183(消息):
添加编译参数:-DWITHOUT_TOKUDB=1

     
 <代码>使- j 4
  使安装 
  

安装成功后先不初始化,把配置文件,启动脚本文件都配置完成后再执行初始化

  

<强>复制配置文件到各实例的等目录下

MySQL (mariadb)多实例应用与多实例主从复制