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. jquery的常用的容易忘记的东西

    1.浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异  http://www.jb51.net/article/57336.htm 2. jquery的each方 ...

  2. Ztree异步加载自动展开节点

    在Ztree的官网Demo中,有自动展开的例子,是通过设置节点属性open:true来实现自动展开的,但是在异步加载中,这个属性设置为true也不会自动展开,因为open:true是指在有子节点的情况 ...

  3. 【前端开发系列】—— CSS3属性选择器总结

    想想自己为什么要学CSS,作为一个开发过前端的人员来说,调试一个图片花了半天的时间,最后发现分隔符用错了,实在是一件很丢人的事情.因此,痛下决心来学习CSS,最近一周也会更新下相关的学习笔记. CSS ...

  4. 每天一个linux命令(23): chown命令

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷贝 ...

  5. 【The final】软件工程实践总结

    软件工程就这么告一段落了,竟然有那么一丢丢的舍不得-- 一.为拖延找的种种借口     [首先声明]以下纯粹是个人吐槽,仅作记录以便日后自己可以回顾一下往昔罢了,可以直接忽略,跳到第二大点:我的拖延之 ...

  6. Future模式

    Future模式简介 Future模式有点类似于网上购物,在你购买商品,订单生效之后,你可以去做自己的事情,等待商家通过快递给你送货上门.Future模式就是,当某一程序提交请求,期望得到一个答复.但 ...

  7. zabbix_agent安装(Centos+Ubuntu)

      Centos安装 安装依赖包    yum -y install mysql-devel libcurl-devel net-snmp-devel 添加用户 groupadd zabbix use ...

  8. TinyMCE(富文本编辑器)

    [转]TinyMCE(富文本编辑器)在Asp.Net中的使用方法 官网演示以及示例代码:https://www.tinymce.com/docs/demo/image-tools/ 转自:http:/ ...

  9. 【转】mac os x系统上Android开发环境的搭建

    由于Google官方已经不提供Adt-Bundle下载了,主推AndroidStudio.可以从这个链接下载http://www.androiddevtools.cn.上面不光有adt-bundle, ...

  10. 轻量级应用开发之(02)UIView

    一 控件 1.屏幕上的所有UI元素都叫做控件(也有叫做视图.组件)比如按钮(UIButton).文本(UILabel)都是控件. 2.控件的共同属性有哪些? 尺寸,位置,背景色 3. 苹果将控件的共同 ...