在实际的开发过程中,可能会需要在一台服务器上部署多个MYSQL实例,那建议使用MYSQL官方的解决方案 mysqld_multi

1.修改my.cnf
 
如一个定义两个实例的参考配置:

 代码如下 复制代码

[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = your_user
password = your_password

[mysqld1]
datadir = /data/db/my1

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

#binlog
log-bin=/data/db/mylog1/mysql-bin
binlog_format=mixed
binlog_cache_size = 32M
expire_logs_days = 30

[mysqld2]
datadir = /data/db/my2

#连接
port = 3307
socket = /tmp/mysql3307.sock

#binlog
log-bin=/data/db/mylog2/mysql-bin
binlog_format=mixed
binlog_cache_size = 32M
expire_logs_days = 3

2.创建数据目录

 代码如下 复制代码
mkdir -p /data/db/my21
mkdir -p /data/db/my2
chown mysql.mysql /data/db/my1 -R
chown mysql.mysql /data/db/my2 -R

3.初始化DB

 代码如下 复制代码

/usr/local/mysql/scripts/mysql_install_db --datadir=/data/db/my1/ -uroot (mysql_install_db也是MYSQL官方自带工具)
/usr/local/mysql/scripts/mysql_install_db --datadir=/data/db/my2/ -uroot
chown mysql.mysql /data/db/my1/ -R
chown mysql.mysql /data/db/my2/ -R

4. 安装工具

 代码如下 www.111cn.net 复制代码

cp /usr/local/mysql/bin/my_print_defaults /usr/bin/
cp /usr/local/mysql/bin/mysqld_multi /usr/bin/

5.创建、授权用户

 代码如下 复制代码

CREATE USER "your_user"@"192.168.1.%" IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO "your_user"@"192.168.1.%";
flush privileges;

至此,mysql多实例配置已经完毕。我们看到多个不同的MYSQL实例是共用my.cnf的。多实例命令行管理:
1.mysql启动

 代码如下 复制代码

mysqld_multi start 1 启动实例1
mysqld_multi start 1-2 启动实例1,2

2.mysql重启

 代码如下 复制代码

mysqld_multi restart 1 重启实例1
mysqld_multi restart 1-2 重启实例1,2

3.mysql关闭

 代码如下 复制代码

mysqld_multi stop 1 关闭实例1
mysqld_multi stop 1-2 关闭实例1,2

4.命令行登陆实例2

 代码如下 复制代码

mysql -u your_user -p your_password -P3307 -S /tmp/mysql3307.sock

后面附另一文章的

Mysqld_multi启动、关闭、状态检查
要想调用mysqld_multi,使用下面的语法:

shell> mysqld_multi [options] {start|stop|report} [GNR[,GNR] ...]

start、stop和report表示你想要执行的操作。你可以在单个服务器或多个服务器上执行指定的操作,取决于选项名后面的GNR 列。如果没有该列,mysqld_multi为选项文件中的所有服务器执行该操作。

每个GNR值代表一个选项组号或组号范围。GNR值应为选项文件中组名末尾的号。www.111cn.net 例如,组[mysqld17]的GNR为17。要想指定组号的范围,用破折号间隔开第1个和最后1个号。GNR值10-13代表组[mysqld10]到[mysqld13]。可以在命令行中指定多个组或组范围,用逗号间隔开。GNR列不能有空格字符(空格或tab);空格字符后面的内容将被忽略掉。

该命令使用选项组[mysqld1]启动单个服务器:

 代码如下 复制代码

shell> /usr/local/mysql/bin/mysqld_multi --defaults-extra-file=/etc/my.cnf start 1

该命令停止多个服务器,使用选项组[mysql8]和[mysqld10]至[mysqld13]:

 代码如下 复制代码

shell>/usr/local/mysql/bin/mysqld_multi --defaults-extra-file=/etc/my.cnf stop 8,10-13

或者一下形式关闭单个服务器

 代码如下 复制代码

shell> mysqladmin -u root -S /tmp/mysql3306.sock shutdown

该命令查看多个服务器,使用选项组[mysql8]和[mysqld10]至[mysqld13]:

 代码如下 复制代码

shell>/usr/local/mysql/bin/mysqld_multi --defaults-extra-file=/etc/my.cnf report 8,10-13

 
你可能感兴趣的文章

MYSQL多实例配置与使用教程的更多相关文章

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

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

  2. MySQL多实例配置(两)

    MySQL操作和维护一个集中的数据库的.它可以由一个单一的执行MySQL在数据库服务器,部署多MySQL示例.这个功能是由mysqld_multi实现.mysqld_multimysqld的服务进程. ...

  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安装及配置最详细教程

    https://blog.csdn.net/Mxdon_on/article/details/89461513 概述 MySQL作为最常用的数据库,手动安装的方法还是稍微有些弯弯 首先下载安装包 (官 ...

  6. MySQL多实例配置

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

  7. 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 ...

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

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

  9. Mysql多实例添加到开机自启的方法

    Mysql多实例配置成功后,想让配置成开机自启. 首先看一下Linux启动的知识点,顺序如下. 1 加载内核2 执行init程序3 /etc/rc.d/rc.sysinit   # 由init执行的第 ...

随机推荐

  1. C++之vector中元素删除

    今天在删除vector中的元素中遇到一个问题,这里记录下来以便以后查阅. 预备知识:用到了erase()函数,对于一个容器c来说,假设迭代器为p,那么执行: c.erase(p)之后就删除了容器c中p ...

  2. ReactNative学习实践--Navigator实践

    离上次写RN笔记有一段时间了,期间参与了一个新项目,只在最近的空余时间继续学习实践,因此进度比较缓慢,不过这并不代表没有新进展,其实这个小东西离上次发文时已经有了相当大的变化了,其中影响最大的变化就是 ...

  3. Swift学习笔记十

    枚举 一个枚举为一组相关联的值定义一个通用类型,并且让你可以在代码中类型安全地操作这些值. C中的枚举将关联的名字指派给一系列整型值.Swift中的枚举类型更为活泼,并不需要为每个成员指定值,如果指定 ...

  4. Codeforces Round #310 (Div. 2) B. Case of Fake Numbers 水题

    B. Case of Fake Numbers Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...

  5. ios开发——实用技术篇Swift篇&照片选择

    照片选择 // MARK: - 选择照片 /*----- 选择照片 ------*/ @IBAction func addImageButtonClick() { let actionSheet = ...

  6. TIDB ---NEW SQL

    https://github.com/pingcap/tidb http://www.pingcap.com/ Quick Start Run TiDB with Docker You can qui ...

  7. 基于jQuery带备忘录功能的日期选择器

    今天给大家分享一款基于jQuery带备忘录功能的日期选择器.这款日期控制带有备记忘录功能.有备忘录的日期有一个圆圈,单击圆圈显示备忘录.该实例适用浏览器:360.FireFox.Chrome.Safa ...

  8. 代码片段---判断一文件是不是字符设备如果是把它拷贝到 /dev目录下

    #!/bin/sh myfile=/home/liu 这个是文件的路径 fd = `ls -l myfile` 获取文件的所有属性 fp= ${fd::} if ["$fp" = ...

  9. iOS runtime 运行时( 二 )

    我们在编程过程中,如果使用到了runtime(运行时),我们几乎都是想动态的改变这个类的信息,包括方法,属性,balabala的,并且获得这个类的一些信息,等等,下面我们就来看看怎么通过runtime ...

  10. iOS 自定义 shareSDK 容器

    - (void)initializePlat { //添加新浪微博应用 [ShareSDK connectSinaWeiboWithAppKey:@"3201194191" app ...