博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql 数据库单机多实例部署手记
阅读量:6679 次
发布时间:2019-06-25

本文共 1939 字,大约阅读时间需要 6 分钟。

最近的研发机器需要部署多个环境,包括数据库。为了管理方便考虑将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_safemysqladmin = /home/root/local/mysql/bin/mysqladmin #mysqld_multi loglog = /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必须为数字标号;

转载地址:http://nvnao.baihongyu.com/

你可能感兴趣的文章
o(1)复杂度之双边滤波算法的原理、流程、实现及效果。
查看>>
Mongodb安装和基本命令
查看>>
python中requests模块使用
查看>>
git bash 常用命令 新手学习
查看>>
日记2014/06/25
查看>>
springboot+Druid+oracle 配置p6spy
查看>>
Maven编译、打war包
查看>>
WP8.1开发:简单的天气预报应用
查看>>
九 循环
查看>>
第十三周项目2-形状类族的中的纯虚函数
查看>>
组织炎症水平高的RA患者接受TNF拮抗剂治疗的效果更好
查看>>
[洛谷P3709]大爷的字符串题
查看>>
通过映射关系 动态转义为统一格式的数据 (支持 JSON 和 XML )
查看>>
ajax跨域解决方案(服务端仅限java)
查看>>
Shell 文本处理三剑客之grep
查看>>
如何写出让人看了恶心的代码
查看>>
http状态码
查看>>
好记性不如烂笔杆-android学习笔记<十五> GridView简单用法
查看>>
最短路径
查看>>
表格相关技巧(双击启动事件、取得行号、定义表格的读写属性)
查看>>