二进制包中mysqld_multi实现单主机多实例及slave

最近由于业务需求只有一台服务器部署数据库,不过为了确保数据有得到实时备份,以便于数据分析备份就使用了mysqld_multi来实现mysql的多实例以及同主机上的slave,这样以后添加新的slave的时候就可以在不影响线上的服务时来进行备份创建slave服务器,至于master与slave的同步设置以前有做过,在这里就不多做赘述了,需要可以参看:http://jim123.blog.51cto.com/4763600/1862808

先说一下mysqld_multi,它可以通过监听不同的socket和tcp/ip的端口来连接mysqld进程,这个在mysql的官网上可以找到详细的文档信息,在这里就简单的说一下实现的过程以及一些注意点。因为mysql是共用my.cnf文件,所以使用mysqld_multi只要在my.cnf中添加相应的配置就好。首先,先把mysld的配置复制下来,并且把mysqld的配置文件中的配置名字[mysqld]改成[mysqld1],然后再在下面添加[mysqld2]作为slave的配置文件,配置可以使用mysqld1的,但是有几个地方要改一下,要修改地方如下:

[mysqld2]
server-id = 2
#这个很重要,不能和master同一个ID
port            = 3307
socket          = /tmp/mysql3307.sock
log=slow-queries=/data/mysqldata3307/localhost-slow.log
datadir = /data/mysqldata3307
#主要改的就是端口、ip、datadir的路径和socket,其他的就是加上slave的相应配置
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
#添加上mysqld_safe和mysqladmin的路径,这以便于在使用mysqld_multi的时候方便管理mysqld的相应实例的启动和关闭

在修改好my.cnf配置文件后去basedir下的scripts目录中对新实例执行初始化

[[email protected] scripts]# ./mysql_install_db  --basedir=/usr/local/mysql --datadir=/data/mysqldata3307 --user=mysql --skip-name-resolve

然后再把mysqld的进程停掉,使用mysqld_multi来对多实例mysqld进行管理,用法很简单:

mysqld_multi [OPTIONS] {start|stop|report} [GNR,GNR,GNR...]
or     mysqld_multi [OPTIONS] {start|stop|report} [GNR-GNR,GNR,GNR-GNR,...]
启动:
[[email protected] scripts]# mysqld_multi start 1-2
或
[[email protected] scripts]# mysqld_multi start 1
[[email protected] scripts]# mysqld_multi start 2

平时在登录mysql的交互界面的时候使用指定socket文件登录(http://jim123.blog.51cto.com/4763600/1855645),这样mysqld多实例就部署完毕了,接下来就是mysqld多实例的slave的一些配置,要注意的是在同一台主机上的ip是一样主从的区别是他们的端口以及socket的不同所以在master上使用grant语句配置slave账号时候给的host就要指定好,不然会出现ERROR 1133 (42000): Can‘t find any matching row in the user table的错误,相应的在slave上使用change master to语句的时候就要加上Master_Port = 3306用于区分,这样同主机下的多实例的主从就部署完成了。

时间: 2024-12-26 04:13:11

二进制包中mysqld_multi实现单主机多实例及slave的相关文章

redis单主机多实例

假设我们服务器上面已经安装好了redis: 可参看:http://www.cnblogs.com/super-d2/p/3819385.html 下面我们来配置redis单主机多实例: 我们首先拷贝两份文件: [[email protected] redis-2.8.12]# cp /etc/redis.conf /etc/redis6380.conf [[email protected] redis-2.8.12]# cp /etc/redis.conf /etc/redis6381.conf

MySQL5.7单实例二进制包安装方法

MySQL5.7单实例二进制包安装方法 一.环境 OS: CentOS release 6.9 (Final)MySQL: mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 说明:类似的操作系统也可以的.为了方便起见,涉及到的操作,均可以直接粘贴复制,比较直观快捷的实施,我没有将带有命令行的截图或者文字粘贴出来. 可能会与路径有关,本文档是基于实践而记录下的,可能与你的环境有所不同,请遇到问题,具体分析查找资料. 二.准备工作 2.1.修改主机名称 hostn

Linux中两种包:源代码包、二进制包(也叫RPM包、系统默认包)以及他们各自的优缺点

源代码包和RPM包 源码包的优缺点 二进制包的优缺点

kubernetes实践之一:kubernetes二进制包安装

kubernetes二进制部署 1.环境规划 软件 版本 Linux操作系统 CentOS Linux release 7.6.1810 (Core) Kubernetes 1.9 Docker 18.09.3 etcd 3.3.10 角色 IP 组件 推荐配置 k8s_master etcd01 192.168.1.153 kube-apiserver kube-controller-manager kube-scheduler etcd CPU 2核+ 2G内存+ k8s_node01 et

黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类

---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或文件夹封装成对象 (2)方便于对“文件”与“文件夹属性信息”进行操作 (3)File对象,可以作为参数传递给流的构造函数 (二)构造方法 * 通过File的构造函数创建File对象 方式1:File f = new File("c:\\a.txt"); 方式2:File f2 = newF

centos通过yum方式和二进制包安装mariadb

centos7.3通过yum方式安装mariadb 通过安装包组的方式安装 yum groupinfo mariadb mariadb-client yum groupinstall mariadb mariadb-client 启动服务,第一次启动时间有点长 systemctl start mariadb systemctl status mariadb systemctl enable mariadb 安全策略设置,设置密码等 mysql_secure_installation 查看tcp

Linux-什么是二进制包,源码包,RPM包,软件仓库

博文说明[前言]: 本文将通过个人口吻介绍什么是二进制包,RPM包,源码RPM包(SRPM包),源码包,以及RPM常用命令,源码rpm的安装(*.src.rpm),源码包的安装步骤知识(./configure,make,make install)相关知识. 在目前时间点[2017年6月12号]下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容. 本文参考文献引用链接: 1.http://m

mysql 5.7.14二进制包安装

操作系统版本: [[email protected] ~]# cat /etc/redhat-release CentOS release 6.5 (Final) 操作系统内核: [[email protected] ~]# uname -r 2.6.32-431.el6.x86_64 关闭防火墙并关闭自启动: [[email protected] ~]# /etc/init.d/iptables stop [[email protected] ~]# chkconfig --level 234

涉及到复制和二进制日志中的选项和变量-Replication and Binary Logging Options and Variables

在搭建复制中,有些参数需要我们留意,在这里罗列出来,供大家参考一下,以GTID为基础 --server-id server-id:这是一个全局的可动态调整的变量,取值范围为0-4294967295,也就是2的32次方减1,这个选项必须在master和slave中都分别进行设置,如果不设置保持默认,则在连接过程中会产生错误.从而复制失败,将这个参数配置在my.cnf配置文件中,然后重启生效 2. --server_uuid server_uuid:这是一个全局只读的变量,非动态变量,以一个字符串的