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. JS判断输入是否为整数和数字的正则表达式

    "^\\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\\d+)|(0+))$" ...

  2. HoloToolkit项目源码剖析 - Spatial Mapping功能实现

    就像我之前所描述的,HoloToolkit项目是微软基于Unity内置的底层API封装的一套工具集合,帮助我们快速使用Unity集成开发HoloLens应用. 本文主要通过源码研究其中Spatial ...

  3. 《1024伐木累》-te别篇,庭审你知道吗?

    思前想后,我觉得不应该发这一期,因为,做完这一期之后突然发觉,自己失去了主题,到底是在讽刺?还是在讽刺?还是在讽刺呢?不论是什么,大家自己判断吧.就当作者不想发表自己的观点,先看这一期的对白吧! 1. ...

  4. Unity3D 2D游戏中寻径算法的一些解决思路

    需求 unity3d的3d开发环境中,原生自带了Navigation的组件,可以很便捷快速的实现寻路功能.但是在原生的2d中并没有相同的功能. 现在国内很多手机游戏都有自动寻路的功能,或者游戏中存在一 ...

  5. jdbc基础 (一) MySQL的简单使用

    前段时间学习了jdbc,正好利用这几篇文章总结一下. JDBC 可做三件事:与数据库建立连接.发送操作数据库的语句并处理结果. 而程序首先要做的就是加载数据库驱动,这里我使用的是mysql: Stri ...

  6. Android--多选自动搜索提示

    一. 效果图 常见效果,在搜素提示选中之后可以继续搜索添加,选中的词条用特殊字符分开 二. 布局代码 <MultiAutoCompleteTextView android:id="@+ ...

  7. Object C学习笔记24-关键字总结

    学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法. 1.  #import #import <> 从syste ...

  8. 【转载】gcc 使用中常用的参数及命令

    本文转载自:http://www.cnblogs.com/yaozhongxiao/archive/2012/03/16/2400473.html 如需转载,请注明原始出处.谢谢. --------- ...

  9. 《TCP/IP详解卷1:协议》第3章 IP:网际协议(1)-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  10. CsharpThinking---代码契约CodeContract(八)

    代码契约(Code Contract):它并不是语言本身的新功能,而是一些额外的工具,帮助人们控制代码边界. 代码契约之于C#,就相当于诗词歌赋之于语言. --- C# in Depth 一,概述 1 ...