sc delete "服务名"    删除服务

 

环境:
(以下是我这次搭建所使用的环境)

  • 主数据库:

系统:ubuntu ; MYSQL  5.1.63 ;ip:192.168.28.128

  • 从数据库

系统:window 7 ;MYSQL  5.5.8 ;ip:192.168.51.127
步骤:

1.在两台mysql上创建同步用户,让两个mysql可以互相通过root/root访问对方。
    主执行:GRANT ALL PRIVILEGES ON *.* TO
'root'@'192.168.51.127' IDENTIFIED BY 'root' WITH GRANT OPTION;

从执行:GRANT ALL PRIVILEGES ON *.* TO
'root'@'192.168.28.128' IDENTIFIED BY 'root' WITH GRANT OPTION;

2.修改两台的配置文件。

ubuntu 上:

  • 打开/etc/my.cnf
    : sudo gedit /etc/my.cnf    找到[mysqld]在其下添加下面选项。

log-bin=mysql-bin

innodb_flush_log_at_trx_commit = 1
sync_binlog=1
binlog-do-db=game
binlog-ignore-db=test
binlog-ignore-db=mysql

replicate-do-db=game

其中binlog-do-db和replicate-do-db标记出需要进行同步的数据库,对于多个数据库,重复选项多次即可,如上面的配置则表示同步bookmark和debate。binlog-ignore-db表示不进行同步的数据库,上面的配置表示不同步test,
mysql库。

  • 对于主mysql(192.168.28.128),打开选项:

server-id=1

  • 对于从mysql,打开选项

server-id=2

注意server-id选项必须打开,并且集群中每个mysql都要有一个单独的值,不能重复。一般设置主为1,从为2, 3, 4....。手册上说只要不相同什么整数都没有关系,可以设置为IP的值,如:202,203.

  • 得到主数据库二进制log文件和位置ip:重启mysql,执行sql语句:show master status;

结果:

+------------------+----------+--------------+--------------------------+
| File            
| Position | Binlog_Do_DB |
Binlog_Ignore_DB         |
+------------------+----------+--------------+--------------------------+
| mysql-bin.000005 |     106 |
game         | information_schema,mysql
|
+------------------+----------+--------------+--------------------------+
1 row in set (0.00 sec)
记住File
= mysql-bin.000005     Position =106;下面有下划线步骤用到。

window上:

  • 配置my.ini文件

log-bin=mysql-bin        #启用二进制日志文件
        server-id=2
               
#设置数据库ID
        binlog-do-db=databasename        #二进制需要同步的数据库(多个用逗号分隔)
        binlog-ignore-db=mysql                #避免同步的数据库(多个用逗号分隔)
        #配置主从同步
        server-id=2 #从服务器ID
        master-host=192.168.28.128 #主服务器IP
        master-user=gnh1 #主服务器登陆名
        master-password=112233 #主服务器登陆密码
        master-port=3306 #主服务器断口
        master-connect-retry=60 #断点从新连接时间(秒)
        replicate-ignore-db=mysql #屏蔽对MYSQL库的同步
        replicate-do-db=wuliu  #二进制需要同步的数据库

文中该颜色部分可能已经过时,据网上消息介绍,Mysql版本从5.1.7以后开始就不支持“master-host”
类似的参数。所以可能报错:

[ERROR] mysqld: unknown variable ‘master-host=192.168.28.128′。

所以只需添加两行:

server-id = 2
replicate-do-db = game   /*共享的数据库*/

  • 执行SQL语句:

change master to
master_host=’192.168.28.127,master_user=’root’,master_password=’******’,master_log_file=’mysql-bin.000005′,master_log_pos=106;

  • 查看从数据库配置状态

show slave status;

察看结果字段Slave_IO_State,一般应该为"Waiting
for master to send event";此时Slave_IO_Running和Slave_SQL_Running应该为true,

如果不是,在slave端执行:
stop slave; start slave; 重启复制进程。Replicate_Do_DB为要复制的数据库,和my.cnf配置的相同。

测试:

  • 如上文操作:实现了game数据库的主从关系。

0).  在master端创建一个表abc,然后察看slave端是否同步创建了。

1). 在abc插入几条记录,察看slave端数据是否同步插入。
  2). 更新abc的记录,察看slave端数据是否同步
  3). 删除abc的记录,察看slave端数据是否同步
  4). 停掉slave服务器,重新执行2,3,4的内容,重启slave,看slave端数据是否同步。

在执行上面的操作过程中,每执行一次都用第6步的方法察看master的File, Position值和slave的Master_Log_File,Read_Master_Log_Pos是否相同,如果主从工作正常,这

两个值在一次同步完成以后(slave status的Slave_IO_State显示:Waiting for master to send event)将会完全相同。

  • 日志检查

如果有错误,检查mysql data目录的 ...machinname.err 文件。

  • 应用切换到slave

如果master mysql坏掉了,需要将应用转移到slave段。首先在slave端执行:show master status; 把输出保存下来,然后再把应用切换过去。保存输出的File和Position值将可以用于以后从slave恢复master.

具体从slave恢复master的办法:

在master端执行:

CHANGE MASTER to MASTER_HOST='192.168.0.203',
MASTER_PORT=3306, MASTER_USER='repl', MASTER_PASSWORD='repl',
MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=98 ;

其中 MASTER_HOST
为slave的ip,
MASTER_LOG_FILE, MASTER_LOG_POS为切换到slave时记录下的File和Position值。

在master执行:start
slave;

待master内容基本恢复以后(在master执行:show
slave status \G; Slave_IO_State显示为Waiting for master to send event)

将应用切换回master。

待系统稳定后master执行:stop
slave停止slave。如果要避免master重启以后自动开启slave,可以将master mysql的data文件夹的master.info文件删掉。

MYSQL主从数据库搭建的更多相关文章

  1. 【Mysql】Mysql主从库搭建过程(爬完坑后整理所得)

    Mysql主从数据库搭建流程 新手开始学习mysql主从库,遇到一些问题,总结后写出以下流程 下面以5.7.23版本为例介绍 第一步:去官网下载5.7.23版本的免安装压缩包形式的mysql文件,贴上 ...

  2. MySQL主从数据库同步延迟问题解决(转)

    最近在做MySQL主从数据库同步测试,发现了一些问题,其中主从同步延迟问题是其中之一,下面内容是从网上找到的一些讲解,记录下来以便自己学习: MySQL的主从同步是一个很成熟的架构,优点为:①在从服务 ...

  3. Mysql 主从数据库

    MYSQL主从数据库同步备份配置 一.准备 用两台服务器做测试: Master Server: 172.16.0.180/Linux/MYSQL 5.1.41 Slave Server: 172.16 ...

  4. Windows系统环境下创建mysql主从数据库方法(双向主从复制)

    创建mysql主从数据库方法(双向主从复制) (一)Windows系统下的MySQL主从复制(单向复制) (1)环境说明: 1,Mysql版本:mysql5.7.20(主从机mysql版本必须一致) ...

  5. Mysql主从数据库架构的复制原理及配置详解

    1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...

  6. MySQL主从数据库配置与原理

    1.为什么要搭建主从数据库 (1)通过增加从库实现读写分离,提高系统负载能力 (2)将从库作为数据库备份库,实现数据热备份,为数据恢复提供机会 (3)根据业务将不同服务部署在不同机器同时又共享相同的数 ...

  7. mysql主从数据库不同步的2种解决方法(转)

    今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多.发现很正常. show master status; ...

  8. mysql 主从数据库设置方法

    1.主从数据库都需开启bin-log日志 2.在my.ini(windows)或my.cnf(linux)配置文件中添加 server-id = 1(主从配置 id 必须不同) 例子: [mysqld ...

  9. 数据字符集mysql主从数据库,分库分表等笔记

    文章结束给大家来个程序员笑话:[M] 1.mysql的目录:在rpm或者yum安装时:/var/lib/mysql  在编译安装时默许目录:/usr/local/mysql 2.用rpm包安装的MyS ...

随机推荐

  1. PRML读书会第四章 Linear Models for Classification(贝叶斯marginalization、Fisher线性判别、感知机、概率生成和判别模型、逻辑回归)

    主讲人 planktonli planktonli(1027753147) 19:52:28 现在我们就开始讲第四章,第四章的内容是关于 线性分类模型,主要内容有四点:1) Fisher准则的分类,以 ...

  2. python selenuim使用代理的方式

    一.FireFox浏览器 myProxy = "60.195.250.55:80" proxy = Proxy({ 'proxyType': ProxyType.MANUAL, ' ...

  3. form表单用ge方式提交时ie显示中文参数乱码

    有网友说 通过给form表单添加accept-charset="gb2312"和 onsubmit="document.charset='gb2312'" 但这 ...

  4. AaronYang的C#私房菜[二][提供编程效率的技巧]

    前言 我的文章简单易懂,能学到东西.因为复杂的东西,讲起来,好累.阅读者只是膜拜,学不到东西,就是没用的东西,好多文章都是看不下去.我写不出来<大话设计模式>那种为了读者的书,因为没有时间 ...

  5. 第二十七课:滚轮事件,mouseenter与mouseleave事件的修复

    滚轮事件 jQuery核心库没有对mousewheel事件的差异性进行处理,但作为一个常用的事件,本文讲解一下. mousewheel事件只有火狐浏览器不支持.mousewheel用于取得滚动距离的属 ...

  6. npm配置代理

    有时候可能因为使用代理,使用npm下载node模块会报"proxy"相关的错误,error提示ECONNECT,好像是这么拼的. 解决办法 1 配置代理 npm config se ...

  7. PHP微信登錄(網頁授權)之後的獲取用戶的信息

    //這部峯代碼是封裝的庫文件,<?php /** * Created by PhpStorm. * User: root * Date: 16-6-23 * Time: 下午3:29 */ cl ...

  8. ASP.NET--GridView配合DetailsView初使用

    1.GridView与DetailsView中的绑定模板不可以进行编辑的问题 方法:将要编辑的列转换为模板列---TemplateField <EditItemTemplate></ ...

  9. Xunit

    Attributes Note: This table was written back when xUnit.net 1.0 has shipped, and needs to be updated ...

  10. 使用X-UA-Compatible来设置IE浏览器兼容模式

    文件兼容性用于定义让IE如何编译你的网页.此文件解释文件兼容性,如何指定你网站的文件兼容性模式以及如何判断一个网页该使用的文件模式. 前言 为了帮助确保你的网页在所有未来的IE版本都有一致的外观,IE ...