mysql多实例(mysqld_multi方式)

CleverCode最近在研究mysql的多实例,发现有两种方式:

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

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

推荐使用多个配置文件方式。这种实际应用中好,耦合性不强,配置方便,特别是主从复制的时候。

上一篇《mysql多实例(多个配置文件方式)》:http://blog.csdn.net/clevercode/article/details/47610619。介绍了多个配置文件方式。本篇将介绍mysqld_multi方式。

1 环境介绍:

1)简介

mysql 版本:mysql-5.5.27

cmake:cmake-2.8.8

操作系统:CentOS6.5

mysql实例数:3个

实例占用端口分别为:3306、3307、3308

2)本次安装所有的软件资源包下载地址

http://download.csdn.net/detail/clevercode/8662323

2 配置防火墙

1) 在防火墙配置文件中添加3306,3307,3308(允许3306,3307,3308端口通过防火墙)

# vi /etc/sysconfig/iptables   #编辑防火墙配置文件

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3307 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3308 -j ACCEPT

2)重启防火墙

# /etc/init.d/iptables restart  #最后重启防火墙使配置生效

3 安装cmake

解压

# cd /usr/local/src/mysql

# tar zxvf cmake-2.8.8.tar.gz

# cd cmake-2.8.8

配置

# ./configure

编译

# make

安装

# make install

查看版本

# cmake -version

4 安装Mysql

1) 创建用户

# groupadd mysql  #添加mysql组

# useradd -g mysql mysql -s /bin/false  #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统

2) 解压

# cd /usr/local/src/mysql

# tar zxvf mysql-5.5.27.tar.gz

# cd mysql-5.5.27

4) 配置

# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql

PS: cmake的时候,参数可以不用那么多,只要一个-DCMAKE_INSTALL_PREFIX=/usr/local/mysql就行了,我们可以在 my.cnf里面配置。[mysqld]中的内容,看看你copy后的my.cnf有没有这些设置,有就不用了在设置了。

5)编译

# make

6)安装

# make install

5 初始化数据库

# mkdir -p /data0/dbdata/mysql/3306

# mkdir -p /data0/dbdata/mysql/3307

# mkdir -p /data0/dbdata/mysql/3308

# chown -R mysql:mysql /data0/dbdata/mysql/3306

# chown -R mysql:mysql /data0/dbdata/mysql/3307

# chown -R mysql:mysql /data0/dbdata/mysql/3308

# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data0/dbdata/mysql/3306 --user=mysql

# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data0/dbdata/mysql/3307 --user=mysql

# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data0/dbdata/mysql/3308 --user=mysql

6 修改配置文件(只用/etc/my.cnf文件)

# cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf

# vi /etc/my.cnf

[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin 

#用于登陆和关闭此服务
user       = root
password   = CleverCode123

[mysqld3306]
#数据目录
datadir = /data0/dbdata/mysql/3306

#连接
port = 3306
socket = /tmp/mysql3306.sock

#binlog
log-bin=/data0/dbdata/mysql/3306/mysql-bin 

pid-file = /data0/dbdata/mysql/3306/mysql_3306.pid

[mysqld3307]
datadir = /data0/dbdata/mysql/3307
port = 3307
socket = /tmp/mysql3307.sock
log-bin=/data0/dbdata/mysql/3307/mysql-bin
pid-file = /data0/dbdata/mysql/3307/mysql_3307.pid

[mysqld3308]
datadir = /data0/dbdata/mysql/3308
port = 3308
socket = /tmp/mysql3308.sock
log-bin=/data0/dbdata/mysql/3308/mysql-bin
pid-file = /data0/dbdata/mysql/3308/mysql_3308.pid

7 启动3306、3307、3308的mysql

# /usr/local/mysql/bin/mysqld_multi start 3306

# /usr/local/mysql/bin/mysqld_multi start 3307

# /usr/local/mysql/bin/mysqld_multi start 3308

8 查看端口是否监听,如果出现3306,3307,3308则启动正常

# netstat -anp | grep 3308

tcp        0      0 0.0.0.0:3308                0.0.0.0:*                   LISTEN      2348/mysqld

unix  2      [ ACC ]     STREAM     LISTENING     10780  2348/mysqld         /tmp/mysql3308.sock

9 初始化密码并且授权远程登录,mysqladmin用户名和密码需要和/ect/my.cnf中保持一致,否则stop不了服务。

# /usr/local/mysql/bin/mysqladmin -u root password "CleverCode123" -S /tmp/mysql3306.sock

# /usr/local/mysql/bin/mysql -uroot -pCleverCode123 -S  /tmp/mysql3306.sock

mysql> grant all privileges on  *.* to ‘root‘@‘%‘ identified by ‘pwd3306‘ with grant option;

mysql> flush privileges;

# /usr/local/mysql/bin/mysqladmin -u root password "CleverCode123" -S /tmp/mysql3307.sock

# /usr/local/mysql/bin/mysql -uroot -pCleverCode123 -S  /tmp/mysql3307.sock

mysql> grant all privileges on  *.* to ‘root‘@‘%‘ identified by ‘pwd3307‘ with grant option;

mysql> flush privileges;

# /usr/local/mysql/bin/mysqladmin -u root password "CleverCode123" -S /tmp/mysql3308.sock

# /usr/local/mysql/bin/mysql -uroot -pCleverCode123 -S  /tmp/mysql3308.sock

mysql> grant all privileges on  *.* to ‘root‘@‘%‘ identified by ‘pwd3308‘ with grant option;

mysql> flush privileges;

10 停止(必须先初始化密码)。可以使用netstat -anp | grep 3308查看监听进程是否还存在

# /usr/local/mysql/bin/mysqld_multi stop 3306

# /usr/local/mysql/bin/mysqld_multi stop 3307

# /usr/local/mysql/bin/mysqld_multi stop 3308

11 报告。显示进程的状态

# /usr/local/mysql/bin/mysqld_multi report 3306

# /usr/local/mysql/bin/mysqld_multi report 3307

# /usr/local/mysql/bin/mysqld_multi report 3308

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-13 07:59:41

mysql多实例(mysqld_multi方式)的相关文章

基于mysqld_multi实现MySQL多实例配置

环境: 操作系统  CentOS7.5(已安装MySQL) 主机名    localhost 本机安装路径为 /usr/local/mysql 实验初始配置:所有主机关闭防火墙与selinux [[email protected] ~]# iptables -F [[email protected] ~]# systemctl stop firewalld [[email protected] ~]# setenforce 0 MySQL多实例的原理 mysql多实例,简单理解就是在一台服务器上

mysqld_multi配置MySQL多实例

# This is an example of a my.cnf file for mysqld_multi.# Usually this file is located in home dir ~/.my.cnf or /etc/my.cnf## SOME IMPORTANT NOTES FOLLOW:## 1.COMMON USER##   Make sure that the MySQL user, who is stopping the mysqld services, has#   t

mysqld_multi配置MySQL多实例(编译安装的mysql)

1编译安装mysql tar zxf mysql-5.1.73.tar.gz cd mysql-5.1.73 ./configure --prefix=/usr/local/mysql \ --enable-assembler \ --with-extra-charsets=complex \ --enable-thread-safe-client \ --with-big-tables \ --with-readline \ --with-ssl \ --with-embedded-serve

springMVC注解方式+easyUI+MYSQL配置实例

刚接触springMVC,使用的注解方式,也在学习阶段,所以把自己学习到的记下来.本文利用springMVC从数据库读取用户信息为例,分享一下. 1.准备相关架包及资源.因为使用springMVC+easyUI+MYSQL的方式构建项目,所以要下载spring的jar包.easyUI资源.mysql包. 2.新建空项目名称为test,将架包导入项目.即把下载来的spring-framework-3.1.1.RELEASE/libs中的对应jar包复制到项目的/WebRoot/WEB-INF/li

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:资源互相

MySQL2种多实例部署方式总结

多实例在生产很常用,一方面节约了成本,一方面可以充分利用资源,提高数据处理速度(服务器性能够好),之前请教过贺磊dba一点MySQL多实例一些问题,部署安装比较简单,这里总结一下MySQL多实例部署的两种方式: 注意事项 单独管理 集中管理(mysqld_multi) 配置文件 使用不同的配置文件 共用一个配置文件 端口 不可冲突 不可冲突 basedir 可单独目录/可相同目录 可单独目录/可相同目录 datadir 不相同 不相同 pid文件 不可冲突/独立访问 不可冲突/独立访问 sock

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 关系型数据库..

Innobackup mysql 多实例环境搭建主从同步

Innobackup mysql 多实例环境搭建主从同步 该实验是在mysql多实例环境下做的:如果需要部署 mysql 多实例环境,则移步: mysql 多实例案例实战: http://blog.csdn.net/wanglei_storage/article/details/49305239 mysql 的主从搭建大家有很多种方式,传统的 mysqldump 方式是很多人的选择之一.但对于较大的数据库则该方式并非理想的选择.使用 Xtrabackup 可以快速轻松的构建 mysql 主从架构

MySql多实例介绍与实现

一.什么是mysql多实例 mysql多实例,简单的说,就是在一台服务器上开启多个不同的mysql服务端口(如3306,3307),运行多个mysql服务进程.这些服务进程通过不同的socket监听不同的服务端口,来提供各自的服务. 这些mysql实例共用一套mysql安装程序,使用不同的my.cnf配置文件.启动程序.数据文件.在提供服务时,mysql多实例在逻辑上看来是各自独立的,各个实例之间根据配置文件的设定值,来取得服务器的相关硬件资源. 二.mysql多实例优劣势 优 1.有效的利用服