Mysql备机复制到主机_mysql主从复制的实现
唱宇 2010-10-13 北京
最近测试了mysql主从复制的实现,现在记录一下;因为网上有些文章的mysql版本较老,有些参数已经不适合了。
确保 Master 与 Slave 之间的数据一致
[Master Server 方面]
设定 Server-id
开启 Binary Log
设定 Replication Slave 权限
[Slave Server 方面]
设定 Server-id
将 Master_Host 设定为 Master Server
启动与检查 Slave Server 的状态
在此范例中我们假设:
[Master Server]
IP 为 192.168.1.1
server-id 为 1
进行数据同步时所使用的帐户信息:
账号: slave_server
密码: 1234
[Slave Server]
IP 为 192.168.1.2
server-id 为 2
我的环境,主机是LINUX ,客户端是WIN7 。
主机的MYSQL版本:
[root@wxserver2 data]# /usr/local/mysql/bin/mysql --version
/usr/local/mysql/bin/mysql Ver 14.12 Distrib 5.0.51a, for redhat-linux-gnu (x86_64) using readline 5.0
客户端MYSQL版本:
D:\MySQL\MySQL Server 5.1\bin>mysql --version
mysql Ver 14.14 Distrib 5.1.51, for Win32 (ia32)
1、主机上的操作:(IP:192.168.1.1)
修改/etc/my.cnf文件:
在[mysqld]部分添加
server-id=1
log-bin=mysql-bin
binlog-do-db=sims2 (SIMS2换成你要备份的数据库名)
进入mysql命令行状态
mysql -u root -p
输入:
GRANT REPLICATION SLAVE ON *.* TO 'slave_server'@'192.168.1.2',
IDENTIFIED BY '1234'; ##
意思为:
允许 192.168.1.2 这个 IP 使用 slave_server 账号,来进行数据同步(Replication)。
slave_server 这个账号的密码为 1234。
正确执行后:
此时您可以从 Slave Server(192.168.1.2) 使用 mysql client program 进行验证,看是否有正确的开启权限,例如使用以下的指令
在客户端进入mysql命令状态后,执行:
mysql -h 192.168.1.1 -u slave_server -p接着系统会要求您输入密码(你在主机的MYSQL命令状态下添加的密码),若可以顺利登入即表示设定成功。
重新启动主机的MYSQL服务,在MYSQL命令状态执行:
show master status \G; 如果出现下面类似的,表示主机配置正确
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000007 | 334 | sims2 | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
2、客户端操作
设定my.cnf
在[mysqld]区段加入
master-host=192.168.1.1
master-user=backup
master-password=1234
master-port=3306
server-id=2 一定要和主机不一样(值为2--2^32-1)
master-connect-retry=60 预设重试间隔60秒
replicate-do-db=vbb 告诉slave只做vbb数据库的更新
log-bin ##网上较老的教程用这个参数log-slave-updates,在新版本中已经不能用
*****以下星号之间部分,为备忘,有的文档需要做这样的操作(这里不需要)****
CHANGE MASTER TO MASTER_HOST='192.168.1.1',
MASTER_PORT=3306, MASTER_USER='slave_server',
MASTER_PASSWORD='1234';
意思为:
Master Server 是 192.168.1.1
使用 TCP Port 3306 连接
使用 slave_server 这个账号登入
登入时使用的密码为 1234
C.启动与检查 Slave Server 的状态
设定好后,Master/Slave 机制仍未启动,您必须要使用以下的指令来开启或关闭 Master/Slave 机制:
START slave; (启动 Master/Slave 机制)
STOP slave; (停止 Master/Slave 机制)
当你执行 'START slave;' 后,可使用以下的指令来检查执行状态:
*******************************************************
3.将要备份的数据库文件打包,并传至备机(我的数据库名为smis2)
#tar xvf /tmp/sims2.tar /mysql/data/sims2
将SIMS2.tar传至备机,并解压缩至备机的MYSQL的DATA目录下。
4、重新启动主机和备机的MYSQL服务
在备机上执行:
SHOW SLAVE STATUS \G
执行后应该会看到如下的报表:
mysql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.1
Master_User: slave_server
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000019
Read_Master_Log_Pos: 16492717
Relay_Log_File: www-relay-bin.000018
Relay_Log_Pos: 16492854
Relay_Master_Log_File: mysql-bin.000019
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: example
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 16492717
Relay_Log_Space: 16492854
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.00 sec)
重点是红色那三行:
Slave_IO_Running:
是否要从 Master Server 复制 Binary Log 数据,必须为 Yes。
Slave_SQL_Running:
是否要执行从 Master Server 复制过来的 Binary Log 数据,必须为 Yes。
Seconds_Behind_Master:
Slave 的数据落后了 Master 多少秒,执行一段时间后应该会是零。
5、这时在备机的mysql/data目录会出现master.info,此档案纪录了Master MySQL server的信息
6、测试:
在主服务器上对数据库进行数据变动,到从服务器或SLAVE端观察数据的变化。
Mysql备机复制到主机_mysql主从复制的实现相关推荐
- mysql主主复制半同步_mysql主从复制中的半同步复制
实验mysql借助google提供的插件,完成半同步复制模型: 物理机依然是win7系统,虚拟机为centos7: 主节点:192.168.255.2 从节点:192.168.255.3 先配置为主从 ...
- mysql 登录默认实例_【MySQL案例】mysql本机登录-S失灵_mysql
[mysql案例]mysql本机登录-S失效 1.1.1. mysql本机登录mysql时,-S参数失效 [环境描述] mysql5.5.14 [问题描述] 配置了多实例 实例1 实例2 datadi ...
- mysql主从复制与主主复制的对比_MySQL主从复制与主主复制
mysql 的主从复制: 实验环境: linux CentOS7两台:192.168.230.10(主)----192.168.230.11(从)(系统安装好,关掉防火墙或配置好防火墙) mysql ...
- MySQL主主复制 外键_MySQL 组复制介绍
一.组复制是个什么鬼? 先从 MySQL 的复制技术谈起,首先是 MySQL 的异步复制 异步复制模式下,Master上执行事务产生 binlog,slave 通过连接 master 抓取 binlo ...
- mysql设置slave复制_mysql5.5建立主从复制(setupmaster-slavereplication)_MySQL
bitsCN.com mysql5.5建立主从复制(set up master-slave replication) 1.注意事项: (1)主从服务器版本要一致 (2)要修改root密码,切不可用初始 ...
- mysql 复制忽略库_MySQL主从复制过滤
MySQL主从复制是逻辑复制,基于Binlog进行主从数据传输,MySQL提供了丰富的参数来配置主从复制过滤条件.在主库可以设置对于库的数据写入是否写入binlog,在从库可以设置对某些库或者表的bi ...
- mysql主主 主键冲突_mysql主从复制原理,主主复制时主键冲突解决
主从复制原理: 1.master的增删改记录写入binlog: 2.slave的I/O Thread(负责读取master的binlog)读取binlog并将记录写入relaylog: 3.slave ...
- rhel6系统中,mysql 5.6复制新特性下主从复制配置[基于GTID]
1.mysql5.6在复制方面的新特性: (1).支持多线程复制:事实上是针对每个database开启相应的独立线程,即每个库有一个单独的(sql thread).针对这样的改进,如果我们想实现多线程 ...
- mysql多源复制 知乎_MySQL多主一从(多源复制)同步配置
>多主一从,也称为多源复制,数据流向.这是小编的服务器部署的一次小尝试,实际工作中还没遇到过 形式 主库1 -> 从库s 主库2 -> 从库s 主库n -> 从库s 应用场景 ...
最新文章
- 基于深度学习的图像边缘和轮廓提取
- linux目录表及功能n鸟哥,鸟哥linux私房菜_笔记_Linux的文件权限与目录配置
- android 修改包名
- 外观模式coding
- MED-V服务器的部署与配置
- sys.modules[__name__]的一个实例
- 关于GPS定位反欺诈研究
- 使用oracle客户端与PLSQL连接ORACLE数据库软件安装过程
- 10 JavaScript函数
- 服务器,路由器,交换机产品解读
- 阿里—最新iOS面试题总结
- 利用count if()+条件格式突出显示多余的重复值
- SpringBoot接入Ueditor编辑器
- java基础“吃货联盟”(纯代码)
- js层级轮播图兼容IE8及以上浏览器
- h5php大转盘抽奖,html5的非常简单圆形转盘抽奖代码
- matlab 截屏为什么没有呢,录屏没有呀!什么都没有,只有截屏,原来明明有的,现在不知道为什么就突然没有了(手机华为青春版)...
- supervisor 提示:xxx: ERROR (no such process)
- Linux 驱动简介
- How to implement an algorithm from a scientific paper