MySQL操作和维护一个集中的数据库的。它可以由一个单一的执行MySQL在数据库服务器,部署多MySQL示例。这个功能是由mysqld_multi实现。mysqld_multimysqld的服务进程。这些mysqld服务进程程序能够用不同的socket或是监听于不同的端口,同一时候将数据文件分布到不同的磁盘以分散IO。

mysqld_multi提供简单的命令用于启动。关闭和报告所管理的服务器的状态。从而降低生产环境的维护成本。方便兴许的迁移和清理等工作,借助多实例绑定的方式提高服务器的总体资源利用率.对于多实例的配置有2种方式,一种是在my.cnf为全部实例提供配置,一种是使用每个实例一个配置文件。

本文主要描写叙述另外一种方式。

第一种多实例配置方式请參考:MySQL多实例配置(一)  有关MySQL单实例的安装请參考:Linux 下MySQL源代码安装完整版

1、各数据库多实例的差异
  MSSQL
    MSSQL中的实例指的是一个SQL server服务器上仅有一个缺省实例。缺省实例名即为机器名ServerName(或IP)。
       假设在同一台机器上再安装SQL server,我们能够对实例命名如ServerName/InstanceName。

即一台SQL server服务器上能够存在多个不同的实例。一个实例下能够存在多个不同的数据库。
       对于不同实例下的数据库的訪问,使用ServerName/InstanceName:PortNo就可以实现訪问,缺省实例为ServerName:PortNo。
       对不同的实例配置IP地址,相关的訪问协议。端口等等。
       实例的可訪问性须要启动该实例相应的相关服务。

此处须要注意的是实例名和实例的服务名并非同样的。
       缺省的实例的服务名为MSSQLSERVER。而命名实例的服务名为MSSQL$INSTANCE_NAME。
  
  Oracle 
     一个Oracle Server由一个Oracle实例和一个Oracle数据库组成。即:Oracle Server = Oracle Instance + Oracle Database
     在Oracle的实例主要是由SGA。PGA以及一堆的后台进程来组成。此称之为实例。

一系列物理文件的集合包含控制文件、数据文件、联机日志文件、參数文件、密码文件等称之为数据库。
     一个实例仅仅能訪问一个数据库,一个数据库能够被多个实例訪问。
    
  MySQL
     MySQL实例的概念与MSSQL差点儿相同。一个MySQL实例下能够存在或訪问N个数据库。
     不同的实例间能够用不同的端口号来区分,各个实例的数据能够使用不同的磁盘文件夹。
     MySQL多实例通过mysqld_multi工具来进行管理。

2、现有的环境
  mysql安装路径: /u01/app/mysql
  mysql数据路径: /u01/app/mysqldata/data3306
  mysql端口号: 3306
  mysql  版本号:5.6.12 Source distribution
  OS     环境:SUSE Linux Enterprise Server 11 SP3  (x86_64)

3、初始化实例
  #为新实例创建数据文件夹并赋权
  suse11:~ # mkdir -p /u01/app/mysqldata/data3606  
  suse11:~ # mkdir -p /u01/app/mysqldata/data3706
  suse11:~ # chown mysql:mysql -R /u01/app/mysqldata/data3606
  suse11:~ # chown mysql:mysql -R /u01/app/mysqldata/data3706
  
  #初始化实例
  suse11:~ # cd /u01/app/mysql
  suse11:/u01/app/mysql # ./scripts/mysql_install_db --user=mysql --ldata=/u01/app/mysqldata/data3606/
  suse11:/u01/app/mysql # ./scripts/mysql_install_db --user=mysql --ldata=/u01/app/mysqldata/data3706/
  # Author : Leshami
  # Blog   : http://blog.csdn.net/leshami

4、配置各实例的my.cnf文件
  # vi /u01/app/mysqldata/data3606/my3606.cnf
  
  [mysqld]
  socket = /tmp/mysql3606.sock 
  port = 3606
  pid-file = /u01/app/mysqldata/data3606/mysql3606.pid
  datadir = /u01/app/mysqldata/data3606
  basedir = /u01/app/mysql
  user = mysql
  server-id=3606
  [client]
  port = 3606
  socket = /tmp/mysql3606.sock 
  
  [mysql]
  no-auto-rehash
  socket = /tmp/mysql3606.sock 
  prompt=\\u@\\h[\\d]> \\
  
  # vi /u01/app/mysqldata/data3706/my3706.cnf
  
  [mysqld]
  socket = /tmp/mysql3706.sock 
  port = 3706
  pid-file = /u01/app/mysqldata/data3706/mysql3706.pid
  datadir = /u01/app/mysqldata/data3706
  basedir = /u01/app/mysql
  user = mysql
  server-id=3706
  [client]
  port = 3706
  socket = /tmp/mysql3706.sock 
  
  [mysql]
  no-auto-rehash
  socket = /tmp/mysql3706.sock
  prompt=\\u@\\h[\\d]> \\
  
  suse11:~ # chown -R mysql:mysql /u01/app/mysqldata/data3606/my3606.cnf
  suse11:~ # chown -R mysql:mysql /u01/app/mysqldata/data3706/my3706.cnf

5、启动关闭多实例
  suse11:~ # mysqld_safe --defaults-file=/u01/app/mysqldata/data3606/my3606.cnf &
  suse11:~ # mysqld_safe --defaults-file=/u01/app/mysqldata/data3706/my3706.cnf &  
  suse11:~ # netstat -nltp|grep mysql
  tcp        0      0 :::3606                 :::*                    LISTEN      64277/mysqld       
  tcp        0      0 :::3706                 :::*                    LISTEN      64597/mysqld 
  
  suse11:~ # mysqladmin -uroot password 'xxx' -S /tmp/mysql3606.sock
  suse11:~ # mysqladmin -uroot password 'xxx' -S /tmp/mysql3706.sock
  
  #以下使用套接字方式连接到实例
  suse11:~ # mysql -uroot -pxxx -S /tmp/mysql3606.sock
  root@localhost[(none)]>
  
  suse11:~ # mysql -uroot -pxxx -S /tmp/mysql3706.sock
  root@localhost[(none)]>
  
  #以下使用TCP方式连接到实例
  suse11:~ # mysql -uroot -pxxx -P3606 --protocol=tcp
  root@localhost[(none)]> exit
  
  suse11:~ # mysql -uroot -pxxx -P3706 --protocol=tcp
  root@localhost[(none)]>
  
  #关闭mysql实例
  suse11:~ # mysqladmin -uroot -pxxx -S /tmp/mysql3606.sock shutdown
  suse11:~ # mysqladmin -uroot -pxxx -S /tmp/mysql3706.sock shutdown

版权声明:本文博主原创文章。博客,未经同意不得转载。

MySQL多实例配置(两)的更多相关文章

  1. MYSQL多实例配置方法 mysqld_multi方法

    在实际的开发过程中,可能会需要在一台服务器上部署多个MYSQL实例,那建议使用MYSQL官方的解决方案 mysqld_multi 1.修改my.cnf 如一个定义两个实例的参考配置: [mysqld_ ...

  2. MYSQL多实例配置与使用教程

    原文http://www.111cn.net/database/mysql/58651.htm 在实际的开发过程中,可能会需要在一台服务器上部署多个MYSQL实例,那建议使用MYSQL官方的解决方案 ...

  3. MySQL多实例配置(一)

    MySQL数据库的集中化运维,能够通过在一台MySQL数据库服务器上,部署多个MySQL实例.该功能是通过mysqld_multi来实现.mysqld_multi用于管理多个mysqld的服务进程,这 ...

  4. 基于mysqld_multi实现MySQL多实例配置

    环境: 操作系统  CentOS7.5(已安装MySQL) 主机名    localhost 本机安装路径为 /usr/local/mysql 实验初始配置:所有主机关闭防火墙与selinux [ro ...

  5. MySQL多实例配置

    实验环境:RHEL6.4为最小化安装,mysql安装包为通用二进制安装包,版本为mysql-5.6.26 创建mysql用户 #useradd –M –s /sbin/nologin mysql #y ...

  6. mysql多实例配置下,用脚本启动mysql时,出现Please read "Security" section of the manual to find out how to run mysqld as root!

    [root@localhost 3308]# mysqld stop170414 0:35:28 [Note] --secure-file-priv is set to NULL. Operation ...

  7. mysql、mariadb安装和多实例配置

    本文目录:1. mysql单实例安装 1.1 rpm安装mysql 1.2 通用二进制包安装mysql 1.2.1 初始化数据库 1.2.2 安装后的规范化操作 1.3 编译安装 1.3.1 编译安装 ...

  8. mysql多实例介绍及配置

    mysql多实例介绍及配置 1.mysql多实例介绍 1.1 什么是mysql多实例 mysql多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过 ...

  9. linux下mysql多实例安装

    1.MySQL多实例介绍 1.1.什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的 ...

随机推荐

  1. cocos2d-x截图功能clippingnode它也可用于——白费

    许多其他精彩分享:http://blog.csdn.net/u010229677 3.1版本号: 在Director数: bool Director::saveScreenshot(const std ...

  2. Spring jdbc 对象Mapper的简单封装

    一般查询实体的时候,都需要这么使用/**      * 根据id查询      *       * @return      */     public Emp queryEmpById(Intege ...

  3. 使用NaturalDuration获取音频的时长

    #region customizeTime ) sec = " + mediaElement.Position.Seconds.ToString(); else sec = mediaEle ...

  4. Windows Phone开发(25):启动器与选择器之WebBrowserTask

    原文:Windows Phone开发(25):启动器与选择器之WebBrowserTask 从名字上就看出来,这个家伙就是打开浏览并浏览到指定页面. 它有两个用途完全一样的属性:Uri属性是Syste ...

  5. Asp.net网站的简单发布

    概述 网站是由一个个页面组成的,是万维网具体的变现形式,关于万维网,网页的方面的理论知识,大家可以看一看这篇博客:万维网文档,在这里就不多说了.网站的发布要到达的一个目的就是,别人可以通过浏览器访问该 ...

  6. Android4.0设置接口变更摘要(四)

    为了与你之前,你已经设置了共享Tab风格和Item实现圆角.希望能给有须要的朋友一点点帮助,今天再和大家分享一下用ViewPager实现设置分页,小米和OPPO就是这种设置,先来看看效果图: wate ...

  7. mongodb笔记2

    成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作. 输入help可以看到基本操作命令: show dbs:显示数据库列表 show collections:显示 ...

  8. Code-Based Configuration (EF6 onwards)

    https://msdn.microsoft.com/en-us/data/jj680699#Using

  9. win10无法新建文件夹怎么办 win10右键新建菜单设置方法

    有朋友安装了win10系统后发现右键菜单中没有新建项,而平时使用新建 - 文件夹项的机率很高.如何才能恢复桌面右键菜单中的新建项呢? 右键点击桌面空白处,在右键菜单中发现没有新建项: 桌面右键菜单没有 ...

  10. Codeforces Round #264 (Div. 2) C Gargari and Bishops 【暴力】

    称号: 意甲冠军:给定一个矩阵,每格我们有一个数,然后把两个大象,我希望能够吃的对角线上的所有数字.我问两个最大的大象可以吃值. 分析:这种想法是暴力的主题,计算出每一格放象的话能得到多少钱,然后求出 ...