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)多实例应用与多实例主从复制