在一台机器上一个MySQL服务器运行多个MySQL实例有什么好处?这里我先入为主给大家介绍这样做至少存在两个好处(看完这篇文章后理解会更透彻):

(1)减轻服务器链接负担

(2)为不同的用户提供不同的mysqld服务器的访问权限以方便这些用户进行自我管理。

下面我介绍具体的实现过程:

一、准备工作

台式机一台、Windows系统、MySQL服务器(我安装的版本是MySQL 5.7.24)

二、MySQL安装

MySQL的安装方法网上有很多,但个人建议查看MySQL官方手册关于安装的介绍,虽然这种方法很花时间,需要阅读英文,但是官方资料介绍的详细并且安装不容易出错,MySQL 5.7手册地址为https://dev.mysql.com/doc/refman/5.7/en/

三、MySQL安装测试(非重点)

MySQL安装后需要进行测试以检查安装是否正确。一遍情况下在C:\ProgramData\MySQL\MySQL Server 5.7路径下有一个Data文件,如果没有该文件则在MySQL安装位置(一般在C:\Program Files\MySQL\MySQL Server 5.7)进入bin文件执行>bin>mysqld --initialize回车后就会在C:\ProgramData\MySQL\MySQL Server 5.7下生成一个Data文件。

链接测试(本地链接),bin>mysql -u user -p

回车后,输入密码,若登录成功会显示welcome信息

四、MySQL实例搭建(重点)

MySQL实例1搭建:

一个完整的MySQL安装其实就确定了一个MySQL实例,这个实例的具体信息:

(1)MySQL安装位置:C:\Program Files\MySQL\MySQL Server 5.7

(2)Data路径及my.ini文件路径:C:\ProgramData\MySQL\MySQL Server 5.7

(3)默认端口3306:在my.ini文件中[mysqld]信息下有port=3306,这是默认的端口。

启动该实例的方法是进入C:\Program Files\MySQL\MySQL Server 5.7下的bin文件,打开命名提示窗口,键入mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini",回车后如果出现光标闪烁说明服务器(实例)启动成功了,如下图所示,关于客户端链接实例文章后面介绍。

MySQL实例2搭建:

创建另一个MySQL实例,一般涉及的配置有:新建Data路径、新建port端口号、socket命名、shared-memory-base-name命名、--pid-file命名。实际上创建一个新的MySQL实例只需要新建Data路径、新建port端口号就可以完成(具体信息见MySQL手册Running Multiple MySQL Instances on One Machine部分)。操作步骤如下:

第一步:在E盘下新建一个文件夹,我命名为MySQL Instances

第二步:将实例1中的Data文件夹和my.ini文件复制到MySQL Instances文件夹里

第三步:配置文件参数设置,打开MySQL Instances文件夹里的my.ini文件,对[mysqld]下的Data路径和端口号进行修改

datadir="E:\MySQLInstances\Data",port=3307(除了3306的其他端口都可以)

第四步:在命令行中使用--defaults-file选项来读取上面自定义的配置文件以启服务器,具体的操作是进入C:\Program Files\MySQL\MySQL Server 5.7下的bin文件(同实例1的启动方式一样,因为这里我只用了一个MySQL版本),重新打开一个命名提示窗口,

键入mysqld --defaults-file="E:\MySQL Instances\my.ini",回车后如果出现光标闪烁说明服务器(实例)启动成功了,如下图所示,如果出现Uploads文件找不到,则只需要在MySQL Instances文件夹里新建一个空的Uploads文件夹就好了。

五、MySQL实例链接

如果一切进展顺利,上面的两个MySQL实例都已经成功启动了,接下来我们看看客户端是如何链接他们的。由于我身边另有一台也安装了MySQL的Linux系统 的电脑,这里我就用它来作为远程链接MySQL实例的客户端(当然,本地通过MySQL client或在bin目录下通过mysql链接也可以)。

远程链接MySQL实例1:

打开命令窗口键入mysql --host=192.168.1.105 --port=3306 -uroot -p

输入密码(Linux系统下密码是看不见的)后回车就会弹出如下图所示的提示,说明一切顺利,远程用户可以操作位于C:\ProgramData\MySQL\MySQL Server 5.7\Data里的数据库了。这里host是服务器段的IP地址,port就是之前启动的实例的端口号,root是用户名 -p是该用户对应的密码,详细介绍见下文补充说明。

远程链接MySQL实例2:

打开一个新命令窗口键入mysql --host=192.168.1.105 --port=3307 -uroot -p

输入密码后回车就会弹出如下图所示的提示,说明一切顺利,远程用户可以操作位于E:\MySQL Instances\Data里的数据库了

六、总结及补充说明

总结

通过上面的介绍可知,两个MySQL实例的核心是端口号和Data路径的设置,客户端访问实例时需要指定该实例对应的端口号,这样就可以减少因多个客户端链接同一个服务器(实例)可能带来的阻塞现象。

此外,每一个实例都指定了对应的Data路径,我们知道存放数据的数据库database就是位于Data路径里,像我一样,把实例2的Data路径放在E盘里可以减轻C盘存储负担。

每一个实例对应一个Data路径,显然服务器管理员可以给链接到这些实例的用户设置权限(位于Data下的mysql数据库进行设置)并针对不同的用户创建不同的数据库。其实MySQL多实例 的优点远不止这些。

补充说明

(1)虽然本章只介绍了一台机器、一个MySQL版本下创建两个MySQL实例的过程,但如果您认真思考就会发现像一台机器下安装多个MySQL版本并创建多个MySQL服务器或实例的方法都是如出一辙的。

(2)在启动服务器(实例)时,很可能出现各种问题,希望你别紧张,也别随便就百度,依据我个人的经验,在这个环节出现error一般有两种原因:第一种情况是因为你输入的路径字符串格式不对,比如把“\"写成了"/";第二种情况是在配置my.ini文件时出现错误,比如Data路径没有设置正确等等。总之,请认真看看error提示。

(3)本人主要介绍创建多个实例的过程,所以远程链接MySQL实例的用户名都是默认的root且密码都一样,实际上,MySQL服务器管理员可以创建多个用户名并为其设置相应的密码,这样就可以方便用户链接。此外,两个实例中Data路径下的文件都是一样的(包括数据库和日志文件,实际上,为了充分利用多MySQL实例的优势,Data路径下的文件可以按照我们的需求进行任意修改,满足实际需求。Data路径下的文件及作用本人将陆续呈现,当然您也可以咨询我

这篇文章是本人开通公众号发布的第一篇文章,不管是文字描述还是技术介绍都存在不足之处,希望大家批评指正!当然有问题的伙伴可以留言或通过微信公众号“Python生态智联”联系我

如何实现一台机器上运行多个MySQL实例?相关推荐

  1. php和mysql不在一台机器上_MySQL_在同一台机器上运行多个 MySQL 服务,**************************************** - phpStudy...

    在同一台机器上运行多个 MySQL 服务 ********************************************************** 第一部分, 在一台服务器构建多mysql ...

  2. 在同一台机运行多个mysql 服务 多个主/从在同一主机_在同一台机器上运行多个 MySQL 服务...

    在同一台机器上运行多个 MySQL 服务 ********************************************************** 第一部分, 在一台服务器构建多mysql ...

  3. 在一台机器上运行多个ActiveMQ实例

    几周前,我通过Mule ESB解决方案再次开始使用Apache ActiveMQ作为JMS提供程序. 由于我使用ActiveMQ已经有几年了,所以我认为最好检查一些(新)功能,例如故障转移传输和其他群 ...

  4. 一台机子上运行多个mysql实例

    安装说明: 一份mysql程序文件,一个配置文件,运行多个mysql实例(每个实例有各自不同的数据目录).为了测试的便利,本实验只用两个示例来练习. mysql程序安装目录:/usr/local/my ...

  5. mysql多实例的安装和管理(一台服务器上运行两个mysql实例)

    mysql的多实例有两种方式可以实现,两种方式各有利弊. 第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便. 第二种是通过官方自带的mysq ...

  6. 一台机器上运行多个ActiveMq

    2019独角兽企业重金招聘Python工程师标准>>> 由于业务需要一台机器上运行多个ActiveMq,这里主要说一下有什么地方不重复: 1.brokerName名称不能重复 2.端 ...

  7. 一个服务器启动2套mysql_一台服务器上启动两个mysql实例

    一台服务器上启动两个mysql实例 操作环境:centos6.8 有时由于服务器硬件资源紧张,而又需要新增mysql服务.这时我们可以采取在一台服务器上部署两个mysql实例,来解决. 1.创建新的m ...

  8. linux 跨机器执行shell,使用DSH(分布式Shell)在多台机器上运行Linux命令

    系统管理员都非常清楚的,能够尽可能各地监测并在很短的时间管理大量计算机,最好尽可能少运行的重要性. 无论是小型云环境还是庞大的服务器集群,集中管理计算机的能力都至关重要. DSH跨多个服务器运行命令 ...

  9. linux一台机器如何安装两个mysql,在一台linux机器上启动两个mysql实例

    环境:linux主机上已经yum安装了mysql,而且数据库正在运行. 在不关闭/重启mysql的情况下,重新启动一个新的mysql实例,使用3307端口,实现一台机器上同时运行两个数据库实例. 1. ...

最新文章

  1. linux php环境搭建_PHP-小程序:(1)开发环境搭建
  2. wxWidgets:wxFrame类用法
  3. 机器学习:SVM、软间隔、随机梯度下降SVM线性算法
  4. Cookie 与Session 的区别
  5. 到底要不要拯救地球?真·逻辑鬼才!| 今日最佳
  6. python在线问卷调查系统源代码_基于Python 练习1情况的在线问卷
  7. ddl dml dcl
  8. devise修改密码
  9. 权限设置并未向在应用程序容器 不可用
  10. 2021-2025年中国住宅安全行业市场供需与战略研究报告
  11. 我的几个.NET编程习惯
  12. 密钥库证书的SHA-1指纹
  13. php职业性格测试,三个职业测试方法,助你选择适合你的工作(附测试链接)
  14. QDir中mkdir和mkpath的区别
  15. 软考中级网络工程师学习笔记(知识点汇总)普通版
  16. python 计算字符串表达式_python计算数学表达式
  17. Android 经典系统 HTC One 802d国行电信专版/最新Viper2.6.0/永久root/强大的功能、高级设置/纯净省电ROM
  18. 【SoDiaoEditor电子病历编辑器】阶段性更新--新增复选框、日期控件、表格排版支持等--B/S架构...
  19. 服装erp软件如何提高企业利润
  20. word表格分开快捷键_Word用鼠标和快捷键拆分单元格与合并单元格

热门文章

  1. antd upload组价上传status状态一直是uploading解决方法
  2. 禾川科技科创板上市破发:大跌17% 公司市值近30亿
  3. cppcheck使用指南
  4. 嵌入式混合操作系统TOS源码开源
  5. 文化|智链万源凝心聚力,遇见更卓越的你!
  6. 程序员面试的奇葩问题
  7. 飞猪如何靠着一群猪队友,实现单日21亿交易额?
  8. java怎么创建二进制文件_如何为Java应用程序创建本机二进制文件?
  9. 【NFS】CFS文件管理
  10. matlab图形编辑,matlab绘制图形plot属性编辑