广告
返回顶部
首页 > 资讯 > 数据库 >MySQL5.7 多实例
  • 904
分享到

MySQL5.7 多实例

MySQL5.7多实例 2021-07-08 05:07:54 904人浏览 绘本
摘要

文中使用Mysql5.7 版本实现多实例,端口为3306和3307。 1、多实例本质在一台机器上开启多个不同的mysql服务端口(3306,3307),运行多个mysql服务进程,这些服务进程通过不同的Socket监听不同的服务端口来提供各

文中使用Mysql5.7 版本实现多实例,端口为3306和3307。

1、多实例本质
在一台机器上开启多个不同的mysql服务端口(3306,3307),运行多个mysql服务进程,这些服务进程通过不同的Socket监听不同的服务端口来提供各自的服务;

多个实例共用一套mysql安装程序,配置文件可以用同一个(但是最好不同,文中用不同配置文件),启动程序可以用同一个(最好不同,文本用不同启动脚本),数据文件是不同的(必须不同);

服务器的硬件资源是公用的,逻辑上多实例是各自独立的;

MySQL5.7 多实例

2、多实例作用
有效利用服务器资源;节约服务器资源;
但是多实例肯定会存在资源互相抢占问题,当某个服务实例并发很高或者有慢查询时,会消耗整台服务器更多的内存、CPU等,势必导致其他实例运行也很慢。

3、多实例应用场景
资金比较紧张的公司;
并发访问不是特别大的业务;

4、安装多实例数据库

创建相应的目录

mkdir /mysql/{3306,3307}/{data,logs,conf,tmp} -p

// 目录解释
data  # 存放数据
logs  # 存放mysql日志以及binlog日志
conf  # 存放mysql配置文件
tmp   # 存放mysql socket文件

创建mysql用户,登录方式nologin,不创建家目录

groupadd mysql -g 1002
useradd mysql -u 1002 -g 1002 -s /sbin/nologin -M

安装一些依赖包

yum install ncurses-devel libaio-devel -y

上传mysql 5.7至本机/application目录

// 将mysql5.7 解压并移动到/application/mysql-5.7.20 目录下
mkdir -p /application/mysql-5.7.20 
tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz ./mysql-5.7.20
mv mysql-5.7.20-linux-glibc2.12-x86_64/* mysql-5.7.20/
rm -rf mysql-5.7.20-linux-glibc2.12-x86_64

// 软连接
ln -s /application/mysql-5.7.20/ /application/mysql

// 将 /application/mysql/bin 目录加入PATH环境变量
vim /etc/profile
export MYSQL_HOME=/application/mysql/bin
export PATH=$PATH:$MYSQL_HOME

每个实例配置my.cnf文件

3306实例

# vim /mysql/3306/conf/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/mysql/3306/data
tmpdir  = /mysql/3306/tmp
socket=/mysql/3306/tmp/mysql.sock
log-error=/mysql/3306/logs/mysql.log
port=3306
server_id=3306
max_connections = 1000
innodb_buffer_pool_size = 260M
skip_name_resolve

# 字符集
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
nit_connect="SET NAMES utf8mb4"

# bin-log日志
log-bin=/mysql/3306/data/mysql-bin
binlog_fORMat=row

# 慢日志
slow_query_log = 1
slow_query_log_file = /mysql/3306/logs/slow.log
log_queries_not_using_indexes = 1
log_throttle_queries_not_using_indexes = 5
long_query_time = 1

[mysql]
socket=/mysql/3306/tmp/mysql.sock

[mysqladmin]
socket=/mysql/3306/tmp/mysql.sock

3307实例

# vim /mysql/3307/conf/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/mysql/3307/data
tmpdir  = /mysql/3307/tmp
socket=/mysql/3307/tmp/mysql.sock
log-error=/mysql/3307/logs/mysql.log
port=3307
server_id=3307
max_connections = 1000
innodb_buffer_pool_size = 260M
skip_name_resolve

# 字符集
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

# bin-log日志
log-bin=/mysql/3307/data/mysql-bin
binlog_format=row

# 慢日志
slow_query_log = 1
slow_query_log_file = /mysql/3307/logs/slow.log
log_queries_not_using_indexes = 1
log_throttle_queries_not_using_indexes = 5
long_query_time = 1

[mysql]
socket=/mysql/3307/tmp/mysql.sock

[mysqladmin]
socket=/mysql/3307/tmp/mysql.sock

使用mysqld命令初始化mysql数据库文件

// 授权mysql用户管理相应的mysql目录
chown -R mysql:mysql /mysql/

// 初始化多实例
mysqld  --defaults-file=/mysql/3306/conf/my.cnf  --basedir=/application/mysql  --initialize-insecure --user=mysql

mysqld  --defaults-file=/mysql/3307/conf/my.cnf  --basedir=/application/mysql  --initialize-insecure --user=mysql

通过mysqld_safe命令启动多实例mysql

mysqld_safe --defaults-file=/mysql/3306/conf/my.cnf &
mysqld_safe --defaults-file=/mysql/3307/conf/my.cnf &

检查操作

// 查看进程是否存在
ps -ef | grep mysql | grep -v "grep"

// 查看端口是否存在
ss -lntup | grep -E "3306|3307" 

// 本地登录(-S 指定不同实例的socket)
mysql -uroot -p -S /mysql/3306/tmp/mysql.sock

多实例启动脚本

#!/bin/bash

PORT=3306
SOCK_FILE_LOCK=/mysql/${PORT}/tmp/mysql.sock.lock
# start
function func_start(){
if [ -f ${SOCK_FILE_LOCK} ];then
   echo "MySQL ${PORT} has started..."
   exit 1
else
   echo "MySQL ${PORT} is start..."
   mysqld_safe --defaults-file=/mysql/3306/conf/my.cnf >/dev/null &
   result=$?
   [ ${result}  -ne 0 ] && echo "MySQL ${PORT} start failed..." || echo "MySQL ${PORT} start success.."
fi
}

# stop
function func_stop(){
if [ -f ${SOCK_FILE_LOCK}  ];then
   echo "MySQL ${PORT} is stop..."
   kill $(cat /mysql/${PORT}/tmp/mysql.sock.lock)
   count=0
   while [ $count -ne 60 ]
    do
      ((count++))
      # echo $count
      sleep 1
      if [ ! -f ${SOCK_FILE_LOCK}  ];then
         echo "MySQL ${PORT} stop success..."
         break
      else
         echo "MySQL ${PORT} is stop..."
      fi
   done
else
   echo "MySQL ${PORT} don"t start..."
   exit 1
fi
}

case $1 in
  start)
     func_start;;
  stop)
     func_stop;;
  restart)
     func_stop
     sleep 3
     func_start
     echo "MySQL ${PORT} restart success...";;
esac

只需要将PORT变量进行替换即可

您可能感兴趣的文档:

--结束END--

本文标题: MySQL5.7 多实例

本文链接: https://www.lsjlt.com/news/2904.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL5.7 多实例
    文中使用mysql5.7 版本实现多实例,端口为3306和3307。 1、多实例本质在一台机器上开启多个不同的mysql服务端口(3306,3307),运行多个mysql服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供各...
    99+
    2021-07-08
    MySQL5.7 多实例
  • mysql5.7多实例怎么安装
    这篇文章将为大家详细讲解有关mysql5.7多实例怎么安装,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1.多实例安装场景(1).某台服务器...
    99+
    2022-10-18
  • MySQL5.7多实例安装及开机启动配置(亲测)
    安装环境: CentOS版本:CentOS7.6.1810 MySQL版本:5.7.9 以前一些很low的方法是: 解压两个mysql,分别放到不同文件夹。 其实在mysql中已经考虑到了多实例安装的情况。也有相应的脚本命令的支持。 现...
    99+
    2016-07-12
    MySQL5.7多实例安装及开机启动配置(亲测)
  • mysql5.7的安装实例方法
    这篇文章主要介绍“mysql5.7的安装实例方法”,在日常操作中,相信很多人在mysql5.7的安装实例方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql5.7的安...
    99+
    2022-10-18
  • centos7安装mysql5.7实例分析
    这篇“centos7安装mysql5.7实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“centos7安装mysql5...
    99+
    2023-06-30
  • MySQL5.7多源复制的实验
    MySQL5.7多源复制的实验node1: 192.168.2.171     master1node2: 192.168.2.172  &nbs...
    99+
    2022-10-18
  • mysql5.6 —>mysql5.7 GTID模式下多源复制之实战案例
    背景说明:公司有多个mysql实例,单实例多个数据库,而且版本还是5.6,这给数据查询分析增加了不少繁琐的事情。所以推荐使用mysql5.6的实例多源复制到mysql5.7实例下方便数据的查询、分析以及权限...
    99+
    2022-10-18
  • mysql5.7单实例安装(二进制)
    1.下载二进制安装包 mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz tar -xvf mysql-5.7.21-linux-glibc2.12-x86_64.tar....
    99+
    2022-10-18
  • MySQL5.7 基于GTID的多源复制实践
    环境说明:主机IPMySQL版本 端口复制帐号复制密码Master1192.168.1.2255.7.253306repl123456Master2192.168.1.1005.7.253306repl12...
    99+
    2022-10-18
  • mysql5.7 生成列 generated column用法实例分析
    本文实例讲述了mysql5.7 生成列 generated column用法。分享给大家供大家参考,具体如下: 生成列的值是根据列定义中的表达式计算得出的。 mysql5.7支持两种类型的生成列: 1、vi...
    99+
    2022-10-18
  • Centos 安装 mysql5.7 示例教程
    创建mysql 用户组和用户 groupadd mysqluseradd -r -g mysql mysql 从官网下载 MySQL wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5...
    99+
    2023-08-19
    mysql 数据库 database
  • MySQL5.7的多源复制方法
    本篇内容主要讲解“MySQL5.7的多源复制方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL5.7的多源复制方法”吧!    &...
    99+
    2022-10-18
  • MySQL5.7的多种安装方式
    本篇内容介绍了“MySQL5.7的多种安装方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-18
  • mysql5.7单实例命令行安装(windows环境下)
    一.下载安装包 二.解压缩至安装目录 D:\install_path 三.添加path环境变量 path=xxx;D:\install_path\bin 四.建立参数文件 D:\install_pa...
    99+
    2022-10-18
  • mysql5.7单实例自启动服务配置过程
    1.mysql版本 [root@clq system]# mysql -v Welcome to the MySQL monitor. Commands end with ; ...
    99+
    2022-11-12
  • 【Mysql】Mysql5.7的多源复制搭建
        一.基本环境主库1: 10.24.65.30  3306 MySQL 5.7.14主库2: 10.24.65.30  3307 mysql...
    99+
    2022-10-18
  • MySQL5.7多主一从同步配置
    这篇文章主要讲解了“MySQL5.7多主一从同步配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL5.7多主一从同步配置”吧!部署环境    注:使用docke...
    99+
    2023-06-19
  • mysql5.7 新增的json字段类型用法实例分析
    本文实例讲述了mysql5.7 新增的json字段类型用法。分享给大家供大家参考,具体如下: 一、我们先创建一个表,准备点数据 CREATE TABLE `json_test` ( `id` int(...
    99+
    2022-10-18
  • MySQL5.7单实例安装及开机启动配置(亲测)
    安装环境: CentOS版本:CentOS7.6.1810 MySQL版本:5.7.9 软件目录:/soft cp /soft/mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz /usr/local/ ...
    99+
    2014-10-07
    MySQL5.7单实例安装及开机启动配置(亲测)
  • 搭建MySQL5.7的多源复制方法
    下面讲讲关于搭建MySQL5.7的多源复制方法,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完搭建MySQL5.7的多源复制方法这篇文章你一定会有所受益。MySQL5.7多源复制...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作