最近的研发机器需要部署多个环境,包括数据库。为了管理方便考虑将mysql数据库进行隔离,即采用单机多实例部署的方式。

找了会资料发现用的人也不是太多,一般的生产环境为了充分发挥机器性能都是单机单实例运行,再进行一系列的配置调优..

多实例的运行机制

通过mysqld_multi启动多个mysqld实例进程,每个实例拥有独立的配置、监听端口、数据库文件、临时文件(日志、socket)等

实现步骤

1  初始化数据目录

mysql_install_db --datadir=/web/mysql/prd/data --user=mysql

mysql_install_db --datadir=/web/mysql/dev/data --user=mysql

//当然数据目录也可以拷贝已有的

2 配置多实例文件

multi.cnf:

#multi server

[mysqld_multi]

mysqld = /home/root/local/mysql/bin/mysqld_safe

mysqladmin = /home/root/local/mysql/bin/mysqladmin

#mysqld_multi log

log = /web/mysql/multi.log

#用户名密码,用以mysqld_multi操作时透传给mysqladmin(初始化时一般为匿名访问,注释掉即可)

#user=root

#password=

#dev server

[mysqld3306]

user = mysql

port = 3306

socket = /web/mysql/dev/var/mysql.sock

pid-file = /web/mysql/dev/var/mysqld.pid

log-error = /web/mysql/dev/var/mysqld.log

datadir = /web/mysql/dev/data

max_connections = 200

default-storage-engine = innodb

character_set_server = utf8mb4

#prd server

[mysqld3307]

user = mysql

port = 3811

socket = /web/mysql/prd/var/mysql.sock

pid-file = /web/mysql/prd/var/mysqld.pid

log-error = /web/mysql/prd/var/mysqld.log

datadir = /web/mysql/prd/data

max_connections = 1000

default-storage-engine = innodb

character_set_server = utf8mb4

3 启动多实例

mysqld_multi --defaults-extra-file=multi.cnf start

4  管理多实例

检查运行情况

mysqld_multi --defaults-extra-file=multi.cnf report

当然也可以通过网络端口检查:

netstat -ntlp tcp

tcp 0 0 :::3306 ::: * LISTEN 3919/mysqld

tcp 0 0 :::3307 ::: * LISTEN 15027/mysqld

停止多实例:

mysqld_multi --defaults-extra-file=multi.cnf stop

修改密码(针对某个实例):

mysqladmin -uroot -S /web/mysql/prd/var/mysql.sock password 123456

连接某个实例:

mysql -uroot -S /web/mysql/prd/var/mysql.sock -p

常见问题

mysqld_multi执行之后无法启动实例, 执行report发现实例没有运行 。

原因:mysql实例目录缺少读写权限,将多实例的数据目录设置为mysql:mysql的用户组,并支持读写权限;

启动实例之后无法停止,mysqld_multi stop不生效

原因: mysqld实例的数据库管理员密码与mysqld_multi透传的管理员密码不一致(见multi.conf),通过修改密码可解决。

TIPS

msyqld_multi命令仅仅对配置文件做语法检查,排查问题时需结合multi.log(见配置文件),以及具体实例的错误日志进行;

实例标号必须为整数,如msyqld3307中3307必须为数字标号;

mysql 单实例部署_Mysql 数据库单机多实例部署手记相关推荐

  1. mysql特殊字符波浪号_mysql数据库特殊字符

    关于 mysql数据库特殊字符的搜索结果 回答 详细解答可以参考官方帮助文档 说明 部分RDS for MySQL实例的账号管理机制已升级.使用本文前,请先检查您的实例是否已升级,检查方式如下: 登录 ...

  2. 配置MySQL数据库单机多实例

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

  3. mysql数据库5.7配置文件_mysql数据库5.7版本部署

    mysql数据库5.7版本部署 1.安装前准备: (mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 二进制安装包 + centos7.4系统,有yum环境,可以在 ...

  4. mysql 多配置文件实例安装_mysql安装之多实例多配置文件安装

    一.多实例安装简介 所谓多实例安装其实是指在一台机器上开启多个不同的mysql服务端口(3306,3307),运行多个mysql服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供各自 ...

  5. mysql dump工具升级_MySQL数据库升级

    当前不少系统的数据库依旧是MySQL5.6,由于MySQL5.7及MySQL8.0在性能及安全方面有着很大的提升,因此需要升级数据库.本文通过逻辑方式.物理方式原地升级来介绍MySQL5.6 升级至M ...

  6. mysql 脏数据查询_MySQL数据库02

    MySQL数据库 前言: 前面我们了解了什么是数据库,什么是MySQL数据库以及如何运用,接下来我们接着深入学习MySQL. (提前声明,以下所提供的事例不标准,仅供参考) 数据库的备份与还原: 备份 ...

  7. 如何查看mysql备份的情况_MySQL数据库备份详解(示例代码)

    原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据 ...

  8. mysql 查找数据过程_mysql数据库查询过程探究和优化建议

    查询过程探究 我们先看一下向mysql发送一个查询请求时,mysql做了什么? 如上图所示,查询执行的过程大概可分为6个步骤: 客户端向MySQL服务器发送一条查询请求 服务器首先检查查询缓存,如果命 ...

  9. mysql数据基本指令_mysql数据库常用命令(详细)

    mysql数据库常用命令(详细) *************************************************** windows下mysql的启动与停止 启动MYSQL服务 n ...

最新文章

  1. 自制树莓派“防松鼠神器”在Reddit火了,13行代码就能让AI替你护食,成本300+元...
  2. RESTful API的理解
  3. JDK版本不匹配...
  4. 如何优雅的使用fbx sdk
  5. drf版本控制 和django缓存,跨域问题,
  6. 功能强大的pdf控件,用户无需安装任何软件即可使用
  7. 倍福PLC控制台达EtherCAT伺服案例分析
  8. python中标点符号大全及名字_常见的标点符号大全及名字
  9. 非常好用的离线地图手机app
  10. 记一次Mysql并发死锁,引出的问题及讨论
  11. 别让用户发呆—设计中的防呆的6个策略
  12. 上网行为管理系统”有什么样的功能?
  13. 每日一学—CSS3 word-wrap 属性
  14. 编程之美 - 烙饼问题
  15. 优酷端侧弹幕穿人技术实战之:PixelAI移动端实时人像分割
  16. 完全开源Android项目:PDF电子书架软件——不动的大图书馆
  17. 大连东软信息学院计算机排名,一骑绝尘!大连东软信息学院排名怎么样?
  18. 计算机教案三维目标,教案三维目标
  19. JSObject.getWindow()方法找不到问题( 类 netscape.javascript.JSObject.getWindow)
  20. vue2 使用 alias 简化路径

热门文章

  1. 关于捕获键盘信息的processDialogkey方法
  2. 读阮一峰对《javascript语言精粹》的笔记,我有疑问。
  3. 使用 git 管理 portage tree
  4. [WCF REST] 解决资源并发修改的一个有效的手段:条件更新(Conditional Update)
  5. MATLAB【八】———— matlab 读取单个(多个)文件夹中所有图像
  6. Spring AOP与IOC
  7. jquery技巧总结
  8. 在ASP.NET中如何用C#.NET实现基于表单的验证
  9. asp.net 的性能计数器
  10. c语言中int和指针和字符所占字节