MySQL多实例配置(二)

    MySQL数据库的集中化运维,可以通过在一台MySQL数据库服务器上,部署多个MySQL实例。该功能是通过mysqld_multi来实现。mysqld_multi用于管理多个mysqld的服务进程,这些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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

性能优化:调整 I/O 相关的等待

编辑手记:对Oracle数据库进行调整优化,基本上最终都可以归结到I/O调整上,因此,了解如何来优化Oracle数据库的I/O对于一个DBA来说就显得至关重要。...

2683
来自专栏Linux运维学习之路

MySQL日志管理

MySQL日志管理 错误日志 配置方法: vim /etc/my.cnf [mysqld] log-error=/tmp/mysql.log 查看配置方式: s...

46612
来自专栏散尽浮华

Oracle日常运维操作总结-数据库的启动和关闭

下面是工作中对Oracle日常管理操作的一些总结,都是一些基本的oracle操作和SQL语句写法,在此梳理成手册,希望能帮助到初学者(如有梳理不准确之处,希望指...

3465
来自专栏康怀帅的专栏

Debian 系包管理工具 apt 简介

apt 是 Debian Ubuntu 上的包管理工具。 源文件位于 /etc/apt/sources.list install remove 删除包 auto...

3196
来自专栏xingoo, 一个梦想做发明家的程序员

Oracle使用小记

windows下Oracle必须要启动的服务 Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务,VSS(Volume...

2125
来自专栏乐沙弥的世界

MySQL多实例配置(一)

    MySQL数据库的集中化运维,可以通过在一台MySQL数据库服务器上,部署多个MySQL实例。该功能是通过mysqld_multi来实现。mysqld_...

1842
来自专栏我的小碗汤

linux上安装LAMP笔记

B哥最近在参加比赛,需要把一个php项目部署到服务器上,故此在linux上安装LAMP环境,用于部署项目,第一次安装,做点儿笔记记录一下。

2452
来自专栏pangguoming

CentOS7 安装 mysql8

本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ManagementAndJava/article/details/80...

9192
来自专栏数据和云

如何在多租户环境下使用数据库的闪回功能

编辑手记:对于数据库的闪回功能,可能大家都不陌生,那么如何在多租户环境下使用该功能,如果关闭了表空间的闪回功能,会给数据库带来哪些影响?我们一起来学习。 本文来...

3445
来自专栏史上最简单的Spring Cloud教程

Openresty最佳案例 | 第9篇:Openresty实现的网关权限控制

简介 采用openresty 开发出的api网关有很多,比如比较流行的kong、orange等。这些API 网关通过提供插件的形式,提供了非常多的功能。这些组件...

4876

扫码关注云+社区

领取腾讯云代金券