iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中怎么实现多实例配置
  • 304
分享到

MySQL中怎么实现多实例配置

2023-06-20 13:06:21 304人浏览 薄情痞子
摘要

MySQL中怎么实现多实例配置,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是Mysql多实例?简单地说,mysql多实例就是在一台服务器上同时开启多个不同的服务端口(如:

MySQL中怎么实现多实例配置,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

什么是Mysql多实例?

简单地说,mysql多实例就是在一台服务器上同时开启多个不同的服务端口(如:3306,3307),同时运行多个Mysql服务进程,这些服务进程通过不同的Socket监听不同的服务端口来提供服务。

这些MySQL多实例共用一套MySQL安装程序,使用不同的my.cnf(也可以相同)配置文件、启动程序(也可以相同)和数据文件。在提供服务时,多实例MySQL在逻辑上看来是各自独立的,它们根据配置文件的对应设定值,获得服务器相应数量的硬件资源。

打个比方吧,MySQL多实例就相当于房子的多个卧室,每个实例可以看作一间卧室,整个服务器就是一套房子,服务器的硬件资源(cpu,men,disk)、软件资源(Centos操作系统)可以看作房子的卫生间、厨房、客厅,是房子的共用资源。若你是北漂的小伙伴,与朋友一起租房子,相信更好理解,大家蜗居在一起,休息在自己的卧室,出来活动肯定是要共用上述公共资源。这样就可以很好的理解MySQL多实例了。

其实很多网络服务都是可以配置多实例的,例如Nginx、Apache、haproxy、redis等都可以配置多实例。这在门户网站使用都很广泛。

在一台物理机中需要多个测试环境,那么就需要用到了搭建数据库的多个实例,多个实例的意思就是运行多份程序,实例与实例之间没有影响。要注意监听的端口需要不同。

环境:CentOS7.5,编译安装MariaDB-10.2.15版本,软件安装目录:/app/mysql/

1)创建运行的目录环境

[root@centos7 ~]# mkdir -p /mysqldb/{3306,3307,3308}/{etc,socket,pid,log,data,bin}[root@centos7 ~]# chown -R mysql:mysql /mysqldb/

2)初始化数据库

[root@centos7 ~]# cd /app/mysql/[root@centos7 mysql]# scripts/mysql_install_db --datadir=/mysqldb/3306/data/ --user=mysql --basedir=/app/mysql/ [root@centos7 mysql]# scripts/mysql_install_db --datadir=/mysqldb/3307/data/ --user=mysql --basedir=/app/mysql/[root@centos7 mysql]# scripts/mysql_install_db --datadir=/mysqldb/3308/data/ --user=mysql --basedir=/app/mysql/

以上是编译安装的,安装目录为/app/mysql/,需要先进入软件的安装目录然后执行初始化脚本,如果是yum安装的包,则直接运行mysql_install_db命令即可

3)提供配置文件并按需要修改

[root@centos7 mysql]# cp support-files/my-huge.cnf /mysqldb/3306/etc/my.cnf[root@centos7 mysql]# cp support-files/my-huge.cnf /mysqldb/3307/etc/my.cnf[root@centos7 mysql]# cp support-files/my-huge.cnf /mysqldb/3308/etc/my.cnf[root@centos7 mysqldb]# cd /mysqldb/[root@centos7 mysqldb]# vim 3306/etc/my.cnf[mysqld]port        = 3306datadir     = /mysqldb/3306/datasocket      = /mysqldb/3306/socket/mysql.sock[root@centos7 mysqldb]# vim 3307/etc/my.cnf  #按以上配置示例更改[root@centos7 mysqldb]# vim 3308/etc/my.cnf

4)提供服务启动脚本

[root@centos7 ~]# cat mysqld  #脚本示例#!/bin/bashport=3306  #需要修改为当前实例的端口号mysql_user="root"mysql_pwd=""cmd_path="/app/mysql/bin"  #安装目录下的binmysql_basedir="/mysqldb"  #实例数据库文件所在目录mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"function_start_mysql(){    if [ ! -e "$mysql_sock" ];then      printf "Starting MySQL...\n"      ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf  &> /dev/null  &    else      printf "MySQL is running...\n"      exit    fi}function_stop_mysql(){    if [ ! -e "$mysql_sock" ];then       printf "MySQL is stopped...\n"       exit    else       printf "Stoping MySQL...\n"       ${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown   fi}function_restart_mysql(){    printf "Restarting MySQL...\n"    function_stop_mysql    sleep 2    function_start_mysql}case $1 instart)    function_start_mysql;;stop)    function_stop_mysql;;restart)    function_restart_mysql;;*)    printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"esac[root@centos7 ~]# cp mysqld /mysqldb/3306/bin/[root@centos7 ~]# cp mysqld /mysqldb/3307/bin/[root@centos7 ~]# cp mysqld /mysqldb/3308/bin/[root@centos7 ~]# vim /mysqldb/3306/bin/mysqldport=3306[root@centos7 ~]# vim /mysqldb/3307/bin/mysqldport=3307[root@centos7 ~]# vim /mysqldb/3308/bin/mysqldport=3308

5)修改脚本文件权限,防止密码被别人看到

[root@centos7 ~]# chmod 700 /mysqldb/3306/bin/mysqld [root@centos7 ~]# chmod 700 /mysqldb/3307/bin/mysqld  [root@centos7 ~]# chmod 700 /mysqldb/3308/bin/mysqld

6)启动服务

[root@centos7 ~]# service mysqld stop  #保证自己原来的服务停止,释放3306端口[root@centos7 ~]# /mysqldb/3306/bin/mysqld start  #启动服务[root@centos7 ~]# /mysqldb/3307/bin/mysqld start[root@centos7 ~]# /mysqldb/3308/bin/mysqld start[root@centos7 ~]# ss -tnl  #如果看到三个实例监听的端口都打开后说明服务启动正常LISTEN 0 80 :::3306 :::*LISTEN 0 80 :::3307 :::*LISTEN 0 80 :::3308 :::*

7)连接测试

[root@centos7 ~]# mysql -S /mysqldb/3306/socket/mysql.sock  #使用-S指定套接字文件Server version: 10.2.15-MariaDB-log Source distributionMariaDB [(none)]> show variables like '%port';  #查看端口是否是3306+---------------------+-------+| Variable_name       | Value |+---------------------+-------+| extra_port          | 0     || large_files_support | ON    || port                | 3306  || report_port         | 3306  |+---------------------+-------+4 rows in set (0.00 sec)[root@centos7 ~]# mysql -S /mysqldb/3307/socket/mysql.sock  #再连接测试一下3307和3308Server version: 10.2.15-MariaDB-log Source distributionMariaDB [(none)]> show variables like '%port';+---------------------+-------+| Variable_name       | Value |+---------------------+-------+| extra_port          | 0     || large_files_support | ON    || port                | 3307  || report_port         | 3307  |+---------------------+-------+4 rows in set (0.00 sec)[root@centos7 ~]# mysql -S /mysqldb/3308/socket/mysql.sockServer version: 10.2.15-MariaDB-log Source distributionMariaDB [(none)]> show variables like '%port';+---------------------+-------+| Variable_name       | Value |+---------------------+-------+| extra_port          | 0     || large_files_support | ON    || port                | 3308  || report_port         | 3308  |+---------------------+-------+4 rows in set (0.00 sec)

多实例搭建成功!

8)使用这条命令来停止实例

[root@centos7 ~]# /mysqldb/3306/bin/mysqld stop

9)最后一步:给root用户加个密码把~

[root@centos7 ~]# mysql -S /mysqldb/3307/socket/mysql.sock Server version: 10.2.15-MariaDB-log Source distributionMariaDB [(none)]> update mysql.user set passWord=PASSWORD("your_password") where user='root';Query OK, 4 rows affected (0.00 sec)MariaDB [(none)]> flush privileges;Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> select user,host,password from mysql.user;+------+-----------+-------------------------------------------+| user | host      | password                                  |+------+-----------+-------------------------------------------+| root | localhost | *9E72259BA9214F692A85B240647C4D95B0F2E08B || root | centos7   | *9E72259BA9214F692A85B240647C4D95B0F2E08B || root | 127.0.0.1 | *9E72259BA9214F692A85B240647C4D95B0F2E08B || root | ::1       | *9E72259BA9214F692A85B240647C4D95B0F2E08B ||      | localhost |                                           ||      | centos7   |                                           |+------+-----------+-------------------------------------------+6 rows in set (0.00 sec)[root@centos7 ~]# mysql -S /mysqldb/3307/socket/mysql.sock -uroot -p'your_password' #指定密码,再次登录OK~

看完上述内容,你们掌握MySQL中怎么实现多实例配置的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中怎么实现多实例配置

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL中怎么实现多实例配置
    MySQL中怎么实现多实例配置,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是MySQL多实例?简单地说,MySQL多实例就是在一台服务器上同时开启多个不同的服务端口(如:...
    99+
    2023-06-20
  • 怎么在MySQL中实现多实例配置
    这篇文章将为大家详细讲解有关怎么在MySQL中实现多实例配置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.1 什么是Mysql多实例简单的说,Mysql...
    99+
    2024-04-02
  • MySQL中怎么配置多实例
    本篇文章为大家展示了MySQL中怎么配置多实例,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 一.基本概念MySQL多实例就是,在一台机器上开启多个不同的...
    99+
    2024-04-02
  • MySQL多实例的配置应用实例场景
    目录MySQL多实例多实例概述什么是多实例:为什么要配置多实例多实例的应用场景配置多实例MySQL多实例 多实例概述 什么是多实例: 在一台服务器上,运行多个数据库服务,这些服务进程...
    99+
    2024-04-02
  • Mysql多实例如何安装配置
    这篇文章主要为大家展示了“Mysql多实例如何安装配置”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mysql多实例如何安装配置”这篇文章吧。 1.OS用户创...
    99+
    2024-04-02
  • MySQL多实例的配置应用实例场景是怎样的
    本篇文章给大家分享的是有关MySQL多实例的配置应用实例场景是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。MySQL多实例多实例概述什么是多实例:在一台服务器上,运行多...
    99+
    2023-06-22
  • day1(多实例配置)
    数据库的安装路径:/usr/local/mysql  数据目录:/data/mysql/data (此处mysql的解压就不再列出来了)     ...
    99+
    2024-04-02
  • MySQL中多实例配置和管理的示例分析
    这篇文章主要介绍MySQL中多实例配置和管理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! mysql的多实例有两种方式可以实现,两种方式各有...
    99+
    2024-04-02
  • MySQL 5.5.35 单机多实例配置详解
    一、前言 二、概述 三、环境准备 四、安装MySQL 5.5.35 五、新建支持多实例的配置文件(我这里配置的是四个实例) 六、初始化多实例数据库 七、提供管理脚本 ...
    99+
    2024-04-02
  • Mysql如何实现主从配置和多主多从配置
    这篇文章主要介绍了Mysql如何实现主从配置和多主多从配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。我们现在模拟的是主从(1台主机、一台从机),其主从同步的原理,就是对b...
    99+
    2023-06-15
  • MySQL的多实例介绍及配置是怎样的
    这篇文章将为大家详细讲解有关MySQL的多实例介绍及配置是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.什么是MySQL多实例 &nbs...
    99+
    2024-04-02
  • Mysql数据库多实例配置的示例分析
    小编给大家分享一下Mysql数据库多实例配置的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!二进制安装: [root@lufengcentos ~]# mkdi...
    99+
    2024-04-02
  • 如何进行MySQL多实例配置管理
    这篇文章给大家介绍如何进行MySQL多实例配置管理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MySQL 多实例配置管理配置多实例my.cnf:[root@open_source&n...
    99+
    2024-04-02
  • 如何进行MySQL数据库中的多实例配置
    今天就跟大家聊聊有关如何进行MySQL数据库中的多实例配置,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MySQL数据库基础篇之入门基础命令所有的操...
    99+
    2024-04-02
  • 怎么利用mysqld_multi配置单机多实例
    这篇文章给大家分享的是有关怎么利用mysqld_multi配置单机多实例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 环境:redhat6.5+m...
    99+
    2024-04-02
  • SpringBoot整合mysql、postgres、sqlserver实现多数据源配置案例
            分享一下近期处理的一个小demo,关于配置多数据源实现不同服务之间的数据推送和数据治理。第一次接触到pg库和sqlserver一头雾水,选择了JDBC+mybatis-plus的方式去链接。 首先要引入以下依赖 org.sp...
    99+
    2023-10-07
    java mybatis
  • mysql5.5中怎么实现多实例部署
    这期内容当中小编将会给大家带来有关mysql5.5中怎么实现多实例部署,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、mysql多实例的原理mysql多实例,简单的说,...
    99+
    2024-04-02
  • Spring Bean的配置与实例化怎么实现
    这篇文章主要介绍“Spring Bean的配置与实例化怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring Bean的配置与实例化怎么实现”文章能帮助大家解决问题。...
    99+
    2023-07-02
  • java怎么实现多语言配置i18n
    本篇内容主要讲解“java怎么实现多语言配置i18n”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java怎么实现多语言配置i18n”吧!java 实现多语言配置i18n1、创建资源包和资源文件...
    99+
    2023-06-20
  • MySQL 5.6同一物理主机配置多实例
    1. 规划目录 创建软件目录,多个实例共用一个软件目录 [root@localhost ~]# mkdir  /mysql_software_56 单实例源码安装流程可以参考 MySQL 5.6...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作