(一)MySQL多实例概述
实例是进程与内存的一个概述,所谓MySQL多实例,就是在服务器上启动多个相同的MySQL进程,运行在不同的端口(如3306,3307,3308),通过不同的端口对外提供服务。
由于MySQL在一个实例下面可以创建多个数据库,所以通常在一台服务器上只要安装一个MySQL实例即可满足使用。但在实际使用中,因为服务器硬件资源充足,或者业务需要(比如在一台服务器上创建开发数据库和测试数据库),往往会在一台服务器上创建多个实例。
(二)MySQL部署多实例的方法
MySQL多实例部署主要有以下两种方式:
使用官方自带的mysqld_multi来配置管理,特点是使用同一份MySQL配置文件,这种方式属于集中式管理,管理起来较为方便;
使用单独的MySQL配置文件来单独配置实例,这种方式逻辑简单,数据库之间没有关联。
本文将对第一种方式进行环境搭建学习。
(三)实验环境
操作系统 :CentOS Linux release 7.4.1708 (Core)
数据库版本:5.7.24-log
预计划安装4个MySQL实例,规划信息为:
实例1
实例2
实例3
实例4
basedir=/usr/local/mysql
datadir=/mysql/3306/data
port=3306
socket=/tmp/mysql_3306.sock
basedir=/usr/local/mysql
datadir=/mysql/3307/data
port=3307
socket=/tmp/mysql_3307.sock
basedir=/usr/local/mysql
datadir=/mysql/3308/data
port=3308
socket=/tmp/mysql_3308.sock
basedir=/usr/local/mysql
datadir=/mysql/3309/data
port=3309
socket=/tmp/mysql_3309.sock
(四)实验过程
(4.1)在安装MySQL之前,需要卸载服务器自带的MySQL包和MySQL数据库分支mariadb的包
[root@masterdb ~]# rpm -qa|grepmysql
[root@masterdb~]# rpm -qa |grepmariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@masterdb~]# rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
(4.2)依赖包安装
MySQL对libaio 库有依赖性。如果未在本地安装该库,则数据目录初始化和随后的服务器启动步骤将失败
、
# install library
[root@mysql mysql]#yum install libaio
对于MySQL 5.7.19和更高版本:通用Linux版本中增加了对非统一内存访问(NUMA)的支持,该版本现在对libnuma库具有依赖性 。
# install library
[root@mysql mysql]#yum install libnuma
(4.3)创建用户和用户组
[root@masterdb ~]# groupadd mysql
[root@masterdb~]# useradd -r -g mysql -s /bin/false mysql
(4.4)解压安装包
[root@masterdb ~]# cd /usr/local/[root@masterdb local]#tar xzvf /root/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
# 修改解压文件名,与前面定义的basedir相同
[root@masterdb local]#mv mysql-5.7.24-linux-glibc2.12-x86_64/ mysql
最终解压结果如下:
[root@masterdb mysql]# ls -l
total36drwxr-xr-x 2 root root 4096 Mar 28 13:48bin-rw-r--r-- 1 7161 31415 17987 Oct 4 2018COPYING
drwxr-xr-x 2 root root 55 Mar 28 13:48docs
drwxr-xr-x 3 root root 4096 Mar 28 13:48include
drwxr-xr-x 5 root root 230 Mar 28 13:48lib
drwxr-xr-x 4 root root 30 Mar 28 13:48 man
-rw-r--r-- 1 7161 31415 2478 Oct 4 2018README
drwxr-xr-x 28 root root 4096 Mar 28 13:48share
drwxr-xr-x 2 root root 90 Mar 28 13:48 support-files
(4.5)创建数据文件存放路径
[root@masterdb mysql]# mkdir -p /mysql/{3306,3307,3308,3309}/data
[root@masterdb mysql]#chown -R mysql:mysql /mysql