如何实现⼀台机器上运⾏多个MySQL实例?
mysql下载到了c盘在⼀台机器上⼀个MySQL服务器运⾏多个MySQL实例有什么好处?这⾥我先⼊为主给⼤家介绍这样做⾄少存在两个好处(看完这篇⽂章后理解会更透彻):
(1)减轻服务器链接负担
(2)为不同的⽤户提供不同的mysqld服务器的访问权限以⽅便这些⽤户进⾏⾃我管理。
下⾯我介绍具体的实现过程:
⼀、准备⼯作
台式机⼀台、Windows系统、MySQL服务器(我安装的版本是MySQL 5.7.24)
⼆、MySQL安装
MySQL的安装⽅法⽹上有很多,但个⼈建议查看MySQL官⽅⼿册关于安装的介绍,虽然这种⽅法很花时间,需要阅读英⽂,但是官⽅资料介绍的详细并且安装不容易出错,MySQL 5.7⼿册地址为sql/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系统 的电脑,这⾥我就⽤它来作为远程链接MyS
QL实例的客户端(当然,本地通过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⽣态智联”联系我

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。