一个主机上管理多个mysql实例

资源有限,只能用一台主机备份多个机器上的mysql,所以怎么才能在一台机器上运行多个mysql呢,肯定是要包括不同的端口,搜索一下mysql multi 可以配置管理多实例,

具体配置,还要等实验后再过来记录~

实验记录

1.1 修改/etc/my.cnf  

分别配置[mysql_multi]  [mysqldN] ###[mysqldN]的配置和普通的mysql配置一样,但是只需要server-id 与主机的server-id不同

1.2初始化数据库

/usr/bin/mysql_install_db --datadir=/data/mysql/3319/data # datadir 在my.cnf里配置~每初始化一次,密码会保存在/root/.mysql_secret文件里

1.3启动mysql_multi  

/usr/bin/mysqld_multi start 1-n;#GNR 是指mysqlN 中的N,N要为正整数

1.4登陆mysql 实例

mysql -uroot -p -S /var/lib/mysql/mysql3319.sock    ###sock文件路径在配置文件里配置

注意:最好配置multi.log   方面观察日志

2、如何配置主从框架

这个是工作的核心,怎么配置才是实现主从

实验记录:

2.1主机上必需配置三个配置

server-id =1 ---服务器唯一ID,默认是1,一般取IP最后一段

log-bin=PATH/log ---启用二进制日志,自定义目录

binlog_format=mixed---binlog的格式也有三种:STATEMENT,ROW,MIXED。 MBR 模式中,SBR 模式是默认的

2.2主机上创建备份权限用户 

grant replication slave on *.* to “库名”@'从库IP' identified by 'password'----安全起见,最好只准许从库登陆

Ps:若'@'%' identified by 'password'; 表示所有客户端都可能连,只要帐号,密码正确,

flush privileges;

登录主服务器的mysql,查询master的状态

mysql>show master status;

2.3修改从服务器的slave配置

server_id =2   ---只要不和主server-id的值一致即可

log-bin=mysql-bin   ---不是必须启用二进制日志,可配可不配

socket=/var/lib/mysql/mysqlport.sock ---为了方便区分,加上端口名

datadir=/data/mysql/port/data ---路径自定,为了区分

注: 因为数据量较大,dump数据比较浪费时间,但是锁表影响业务,所以我是通过物理拷贝的数据,直接到datadir下面,除了server-id 和datadir不和主机一样,其他全部一样,也必须一样,否则,就会出现从库的IO线程启动失败

3如何进行首次同步

首先要明确的是,线上的业务是不能停的,这就意味着主数据库是不能停止的,那如何进行首次备份呢?这个是不可忽略的问题~待寻答案

实验记录

3.1上只读锁 

flush tables with read lock ;

3.2记下偏移量

show master status;

3.3拷贝数据

这里有两种选择

 3.3.1mysqldump  

优缺点配置文件不用完全一致,但是操作时间较长,需要初始化数

mysqldump -uroot -p  --opt -R --all-databases|gzip -9 >/tmp/XX.sql.gz ---压缩一下,等会传输的时候节省时间,当然到从库那边还要先gunzip.

mysql -uroot -p <XX.sql

3.3.2物理备份

操作时间短,除个别配置,其他配置要保持完全一致, 可以不用初始化数据库

主库datadir路径下的文件——》 从库datadir路径下即可

3.4解锁 unlock tables

3.5启动从库  

mysql -u root -p -S /var/lib/mysql/mysql3319.sock  查看数据库是否全部导入

3.6配置从服务器Slave:

change master to maste_host='主库ip',---配置主库的方式跟mysql 版本相关,较老版本可直接在配置文件中

->master_user=”库名”,  ---配置主库

->master_password=”PASSWORD”,

->master_log_file=”mysql-bin.XXXX”

->master_log_pos=XXXXXX;

新版本可以如下配置
mysql>

master_host='主机ip',master_user='库名',master_password='password',
master_log_file='mysql-bin.XXXX',master_log_pos=XXXXXX;

----注意不要断开,308数字前后无单引号。

mysql-bin.XXXX 和master_log_pos=XXXXXX代表show master status; 查询master的状态

如登录主服务器的mysql,查询master的状态结果为

注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

mysql-bin.XXXX 和master_log_pos=XXXXXX分别为

mysql-bin.000004 和master_log_pos=308

sql>start slave;    ----启动从服务器复制功能

 3.7启动从库服务

start slave  启动方式也和数据库版本相关,较老版本可能用slave start 启动

  3.8查看主从状态  

show slave status\G;    这两个进行启动,说明主从配置成功了

Mysql主从配置讲解的更多相关文章

  1. mysql主从配置

    引言: 双11,阿里云服务器打折,于是我忍不住又买了一台服务器,于是咱也是有两台服务器的爷们了,既然有了两台服务器,那么肯定要好好利用一下吧,那么就来玩玩mysql的主从配置吧. 准备 两台数据库服务 ...

  2. Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  3. CentOS 7下的 Mysql 主从配置

    最近在玩mysql主从配置,在此记录一下 一.前言 1.安装两个虚拟机(CentOS 7).iP分别是192.168.47.131 和192.168.47.133.其中192.168.47.133作为 ...

  4. Mysql主从配置+读写分离

    Mysql主从配置+读写分离     MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. ...

  5. mysql主从配置(清晰的思路)

    mysql主从配置.鄙人是在如下环境测试的: 主数据库所在的操作系统:win7 主数据库的版本:5.0 主数据库的ip地址:192.168.1.111 从数据库所在的操作系统:linux 从数据的版本 ...

  6. mysql 主从 配置和同步管理

    首先呢,需要有两个mysql服务器.如果做测试的话可以在同一台机器上装两个mysql服务程序,注意要两个运行程序的端口不能一样.我用的是一个是默认的3306,从服务器用的是3307端口. 在主服务创建 ...

  7. Mysql笔记之 -- 小试MYSQL主从配置

    mysql主从配置: 硬件: 两台服务器 1.Ubuntu 12.04.4 LTS (GNU/Linux 3.2.0-60-generic-pae i686)  2.Ubuntu 12.04.4 LT ...

  8. MySql主从配置实践及其优势浅谈

    MySql主从配置实践及其优势浅谈 1.增加两个MySQL,我将C:\xampp\mysql下的MYSQL复制了一份,放到D:\Mysql2\Mysql5.1 修改my.ini(linux下应该是my ...

  9. windows环境下mysql主从配置

    mysql主从配置. 相关理论知识可以百度一下,这里就不多说了,直接说如何配置. 一.环境介绍及说明 主库所在的操作系统:win7 主库的版本:mysql-5.6.24-winx64.zip 主库的i ...

随机推荐

  1. 在Eclipse中提交SVN项目的时候注意提交项目信息

    提交项目的时候,注意提交.classpath,.project和.settings文件夹: 这些是项目的信息,别人下载的时候才能正确显示为Eclipse项目:

  2. es6笔记3^_^object

    一.destructuring ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构Destructuring. //es5 if(1){ let cat = 'ken'; le ...

  3. Android开发系列之Context

    相信大家对于Context应该非常熟悉,但是Context到底是什么意思呢?到底指的是什么东西呢?我们可以理解为当前对象在程序中所处的一个环境,一个与系统交互的过程.Android系统的上下文对象,即 ...

  4. js控制公共模板中,不同页面中的导航选中效果-判断当前的url

    用js的做法也很多.比较推荐的方法是判断当前的url,然后根据url在nav中的位置,来对nav中的某个导航增加选中样式,代码如下: <!doctype html> <html la ...

  5. Fiddler 模拟请求的操作方法

    此文记录使用Fidder Web Debugger工具,模拟请求的操作步骤! 首先简述一下fiddler的使用: 1.下载安装Fidder抓包工具. 2.打开fiddler发现有左边的栏有请求的url ...

  6. bzoj1061--线性规划

    线性规划裸题... 根据题目很容易可以得到线性规划方程(以样例为例): Min(2*x1+5*x2+2*x3) x1+ 0+ 0>=2 x1+x2+ 0>=3 0+x2+x3>=4 ...

  7. 第七届蓝桥杯javaB组真题解析-分小组(第四题)

    题目 /* 分小组 9名运动员参加比赛,需要分3组进行预赛. 有哪些分组的方案呢? 我们标记运动员为 A,B,C,... I 下面的程序列出了所有的分组方法. 该程序的正常输出为: ABC DEF G ...

  8. asp.net权限认证:Windows认证

    asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证 ...

  9. linux文件相关的命令

    1.linux下的文件分为字符设备文件和块设备文件 2.文件的属性有读写权限.执行权限.访问时间.修改时间.状态改变时间等. 状态改变时间指修改了文件的读写权限或者所有者等操作. 3.ls -l 执行 ...

  10. io的四个分类

    1.首先是字节操作:InputStream和OutputStream 2.字符操作:Reader和Writer 3.磁盘操作:File 4.网络操作:scoket(不在java.io包)