MySql多实例介绍与实现

一、什么是mysql多实例

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

这些mysql实例共用一套mysql安装程序,使用不同的my.cnf配置文件、启动程序、数据文件。在提供服务时,mysql多实例在逻辑上看来是各自独立的,各个实例之间根据配置文件的设定值,来取得服务器的相关硬件资源。

二、mysql多实例优劣势

1.有效的利用服务器资源,当单个服务器资源有剩余时,可以充分利用剩余的服务器资源来提供更多的服务。

2.节约服务器资源当公司资金紧张,但是数据库需要各自提供独立服务,而且需要主从同步等技术时,使用多实例就最好了。

1.出现资源互相抢占问题

当某个实例服务并发很高或者有慢查询时,会消耗服务器更多的内存、CPU、磁盘IO等资源,这时就会导致服务器上的其它实例提供访问的质量下降,出现服务器资源互相抢占的现象。

三、mysql多实例应用场景

1.资金紧张型公司的选择

当公司业务访问量不太大,又舍不得花钱,但同时又希望不同业务的数据库服务各自独立,而且需要主从同步进行等技术提供备份或读写分离服务时,使用多实例是最好不过的。

2.并发访问不是特别大的业务

当公司业务访问量不太大,服务器资源基本闲置的比较多,这是就很适合多实例的应用。如果对SQL语句优化的好,多实例是一个很值得使用的技术。即使并发很大,只要合理分配好系统资源,也不会有太大问题。

四、mysql多实例的实现方法

mysql的多实例有两种方式可以实现,两种方式各有利弊。

第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便。

第二种是通过官方自带的mysqld_multi使用单独的配置文件来实现多实例,这种方式定制每个实例的配置不太方面,优点是管理起来很方便,集中管理。

五、使用第一种方法实现多实例

安装步骤

(本文已经安装好MySql程序,可以参照http://iywdd.blog.51cto.com/11177578/1768135安装)

上传多实例配置文件(一般工作中都是配置好的,本文的配置在下方附件)

[[email protected] ~]# cd /data/   #进入下载目录
[[email protected] data]# rz    #使用rz上传做好的配置文件
[[email protected] data]# unzip mysqlmutil.zip #解压上传的配置文件
Archive:  mysqlmutil.zip
   creating: 3306/
  inflating: 3306/my.cnf             
  inflating: 3306/mysql              
   creating: 3307/
  inflating: 3307/my.cnf             
  inflating: 3307/mysql              
[[email protected] data]# tree ./  #查看解压的内容
./
├── 3306
│   ├── my.cnf
│   └── mysql
├── 3307
│   ├── my.cnf
│   └── mysql
├── mysqlmutil.zip

初始化数据库

修改文件属主,防止初始化数据库失败

[[email protected] data]# chown -R mysql.mysql 3306 3307
[[email protected] data]# ll -d 3306 3307
drwxr-xr-x 2 mysql mysql 4096 4月  17 13:39 3306
drwxr-xr-x 2 mysql mysql 4096 4月  17 13:39 3307

初始数据库

MySql安装路径(/application/mysql/)

初始化第一个数据库

[[email protected] data]# /application/mysql/scripts/mysql_install_db --user=mysql --basedir=/application/mysql/ --datadir=/data/3306/data
Installing MySQL system tables...
OK  #出现OK表示成功
Filling help tables...
OK  #出现OK表示成功
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
省略。。。。。。

初始化第二个数据库

[[email protected] data]# /application/mysql/scripts/mysql_install_db --user=mysql --basedir=/application/mysql/ --datadir=/data/3307/data 
Installing MySQL system tables...
OK  #出现OK表示成功
Filling help tables...
OK  #出现OK表示成功
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

--user=mysql#my.cnf的[mysqld]下"user    = mysql"

--basedir=/application/mysql/#表示mysql软件的目录

--datadir=/data/3307/data #表示数据存放的目录

启动测试

更改权限为500,文件牵扯数据库的密码

[[email protected] /]# chmod 500 /data/{3306,3307}/mysql
[[email protected] /]# ll /data/{3306,3307}/mysql       
-r-x------ 1 mysql mysql 1016 4月   7 07:17 /data/3306/mysql
-r-x------ 1 mysql mysql 1016 4月   7 07:18 /data/3307/mysql

启动

启动使用mysqld_safe指定配置文件启动

实例一

[[email protected] /]# /data/3306/mysql start
Starting MySQL...
[[email protected] /]# netstat -lntup|grep mysql|grep -v grep
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      18504/mysqld

实例二

[[email protected] /]# /data/3307/mysql start                 
Starting MySQL...
[[email protected] /]# netstat -lntup|grep mysql|grep -v grep
tcp        0      0 0.0.0.0:3307                0.0.0.0:*                   LISTEN      19225/mysqld        
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      18504/mysqld

关闭使用mysqladmin指定用户关闭

关闭数据库

[[email protected] /]# /data/3307/mysql stop
Stoping MySQL...
/application/mysql/bin/mysqladmin: connect to server at ‘localhost‘ failed
error: ‘Access denied for user ‘root‘@‘localhost‘ (using password: YES)‘

无法关闭,提示mysql账户密码不对

#配置文件my.cnf#############################

mysql_user="root"   #用户是root

mysql_pwd="123456"  #密码123456

#配置文件my.cnf#############################

配置mysqladmin账户密码

[[email protected] /]# mysqladmin -uroot password ‘123456‘ -S /data/3307/mysql.sock #多实例需要指定sock

停止实例二

[[email protected] /]# /data/3307/mysql stop                                                           
Stoping MySQL...
[[email protected] /]# netstat -lntup|grep mysql|grep -v grep                                          
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      18504/mysqld

重启数据库

[[email protected] /]# /data/3307/mysql start
[[email protected] /]# /data/3307/mysql stop

mysql多实例(my.cnf,mysql)的区别

#my.cnf

区别一

端口和数据目录,socket存放路径都不相同

区别二

大致并没有什么什么变换,只是3306变为3307

区别三

这里和上面今本没有什么改变,唯一需要注意的就是“server-id”不能相同

#mysql

至此如果说再添加一个多实例的话,就将3306改为3308,server-id=4就可以添加第三个多实例

时间: 2024-10-14 00:42:09

MySql多实例介绍与实现的相关文章

MySQL多实例介绍及安装

一.MySQL多实例介绍 (1)什么是MySQL多实例? 简单的说,就是在一台一台机器上开启多个不同的服务端口(如:3306,3307,3308)等,运行多个MySQL服务进程: 这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务. 这些MySQL多实例公用一套MySQL安装程序,使用不同或相同的my.cnf配置文件,启动程序,数据文件.在提供服务时,多实例 MySQL在逻辑上看来试各自独立的多个实例的自身是根据配置文件对应的设定值:来取得服务器的相关硬件资源的多少. 做个比喻

MySQL多实例介绍及配置

在之前的一篇文章中,已经有介绍到怎么安装和配置MySQl了(http://blog.51cto.com/superpcm/2092357).接下来,MySQL中多实例的配置. 1.什么是MySQL多实例 简单来说,MySQL多实例就是在一台服务器上同时开启多个不同服务端口,同时运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的服务器端口来提供服务.这些MySQL多实例共用一套MySQL安装程序,使用不同的my.cnf(也可以相同)配置文件,启动程序 (也可以相同)和数据文件

MySQL多实例介绍与配置

MySQL多实例: 就是在一台机器上开户多个不同的服务端口(如:3306,3307),运行多个 MySQL服务进程,这些服务进程通过不同的socket监听不同的服务端口来 提供各自的服务. MySQL多实例共用一套MySQL安装程序,使用不同的配置文件.启动程序. 数据文件.在提供服务时,多实例MySQL在逻辑上看来是各自独立的,多个 实例的自身是根据配置文件对应的设定值,来取得服务器的相关硬件资源多少.

mysql多实例的介绍与配置

mysql多实例,简单理解就是在一台服务器上,mysql服务开启多个不同的端口(如3306.3307),运行多个服务进程.这些 mysql 服务进程通过不同的 socket来监听不同的数据端口,进而互不干涉的提供各自的服务. 在同一台服务器上,mysql 多实例会去共用一套 mysql 应用程序,因此你在部署 mysql 的时候只需要部署一次 mysql程序即可,无需多次部署.但是,mysql多实例之间会各自使用不同的 my.cnf 配置文件.启动程序和数据文件.在提供服务方面,mysql多实例

Mysql DBA 高级运维学习笔记-MySQL数据库多实例介绍

5.1 MySQL多实例介绍 5.1.1 什么是MySQL多实例? 简单的说,就是一台机器上开启多个不同的服务端口(如3306,3307),运行多个MySQL服务进程,这些进程通过不同的socket监听不同的服务端口来提供各自的服务.这些MySQL多实例共用一套MySQL安装程序,使用不同(也可以相同)的my.cnf配置文件.启动程序,数据文件.我们今天学的是共用一套安装程序,使用不同的配置文件.不同的启动程序.不同的数据文件.在提供服务的时候,多实例MySQL在逻辑上看来是各自独立的,多个实例

linux下mysql多实例安装(转)

转自:http://www.cnblogs.com/xuchenliang/p/6843990.html 1.MySQL多实例介绍 1.1.什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务:: 1.2.MySQL多实例的特点有以下几点 1:有效利用服务器资源,当单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务. 2:节约服务器资源 3:资源互相

MySQL多实例安装

    MySQL数据库(一) 作者:Jack 归档:学习笔记 2017/6/19 目  录 MySQl数据库(一)... 3 第1章概述:... 4 1.1 MySQL介绍:... 4 1.2 MariaDB数据库的诞生背景介绍... 4 1.3 MySQL多实例介绍... 5 1.3.1 什么是MySQL多实例... 5 1.3.2 MySQL多实例的作用与问题... 6 1.4 MySQL多实例的生产应用场景... 7 第2章关系型数据库与非关系型数据库... 8 2.1 关系型数据库..

linux运维、架构之路-MySQL多实例

一.MySQL多实例介绍            一台服务器上开启多个不同的服务端口(3306,33307,3308),运行多个MySQL服务进程,共用一套MySQL安装程序,多实例MySQL在逻辑上看是各自独立的 1.多实例主从复制原理图 2.优点 ①有效利用服务器资源②节约服务器资源③资源互相抢占问题,其中一个实例并发很高或者慢查询,其它实例也受影响 3.应用场景 ①公司资金紧缺②并发访问不是特别大的业务③门户网站应用MySQL多实例场景,一般是从库 4.MySQL多实例常见配置方案 ①多配置

2018-03-24 mysql多实例安装学习笔记

2018-03-24 MySQL多实例介绍 什么是mysql多实例 一台机器上开启多个不同的服务端口(如:3306,3307),运行多个mysql服务进程,这些服务进程通过不同的socket舰艇不同的服务端口来提供各自的服务. 这些mysql多实例共用一套MySQL安装程序,使用不同或相同的my.cnf配置文件.启动程序,数据文件. mysql多实例的作用与问题: 有效利用服务器资源 节约服务器资源,需要主从同步等技术时,多实例再好不过了. 资源互相抢占问题 当某个服务实例并发很高或者有慢查询时