`

mysql 数据库同步

阅读更多
my.cnf介绍:

(1)server-id:     master的server-id

(2)log_bin  :     设置日志文件的目录

(3)binglog_do_db:
指定需要同步的数据库,多个数据库则用类似binglog_do_db: 数据库名称这样指定,用于master机器。

(4)binglog_ignore_db: 
指定不需要同步的数据库,多个数据库则用类似binglog_ignore_db: 数据库名称这样指定,用于master机器。

(5)replicate-do-db:  告诉slave只做某个或某些数据库的更新,多个数据库则用类似replicate-do-db:数据库名称这样指定,用于slave机器。

(6)replicate-ignore-db:  告诉slave做除了某个或某些数据库的更新,多个数据库则用类似replicate-ignore-db:数据库名称这样指定,用于slave机器。

(7)master-host:      master的主机

(8)master-user:     master的用户

(9)master-password: master的密码

(10)master-port:      master的端口

(11)master-connect-retry=10 预设重试间隔10秒



ubuntu数据库同步:

目的:提高读取数据库的效率,分片存储、分片计算。

master:
环境: ubuntu
ip:   192.168.0.129

slave:
环境: ubuntu
ip:   192.168.0.130



一: 主从模式

1: 打开mysql的my.cnf

两种情况(以下操作的目的是允许远程的机器访问该机器的mysql):
1》

1) 在旧版本中找到skip-networking,把它注释掉就可以了
#skip-networking

2) 在新版本中找到bind-address = ...,把它注释掉就可以了
#bind-address           = 127.0.0.1

2》
或者把允许访问的 ip 填上,如bind-address= 192.168.1.100


2: 在master机器的mysql添加允许slave访问的用户。
1》 进入mysql数据库
2》 添加用户(其中192.168.0.130是slave机器的ip,zcy和1234是允许访问的用户名和密码,而GRANT ALL PRIVILEGES是给与所有权限)
GRANT ALL PRIVILEGES ON *.* TO zcy@192.168.0.130 IDENTIFIED BY '1234';
注意: 测试这一步可以进入mysql的mysql数据库中,select user,host from user;
3》 测试在slave机器上 mysql -h 192.168.0.129 -u zcy -p,如果可以进入mysql,证明前面的设置正确。

3:
1》向master机器的my.cnf,配置以下信息:

server-id        = 1
log_bin            = /var/log/mysql/mysql-bin.log
binlog_do_db        = ihaveu_development

2》 向slave机器的my.cnf,配置以下信息:

server-id        = 2
master-host        =192.168.0.129
master-user        =zcy
master-password        =1234
master-port        =3306
master-connect-retry    =10
replicate-do-db        =ihaveu_development

3》: 然后重启master和slave的MySQL服务

sudo /etc/init.d/mysql restart

3》:  测试

在master机器中的mysql:

show master status;

在slave机器中的mysql
show  slave status\G;

注意:
Slave_IO_Running和Slave_SQL_Running都为true时,成功,不过不成功,注意Last_SQL_Error显示的信息。



4: 最后的测试

在主机中的mysql插入一条数据,然后进入slave的mysql中查看

注意:
不能用客户端工具手动插入数据,可以使用sql语句或者使用ruby语言插入数据。





二: 主主模式:

1:  在以上的基础上向master机器的my.cnf,配置以下信息:

master-host        =192.168.0.130
master-user        =zcy
master-password        =1234
master-port        =3306
master-connect-retry    =10
replicate-do-db    =ihaveu_development

2:  向slave机器的my.cnf,配置以下信息:

log_bin            = /var/log/mysql/mysql-bin.log
binlog_do_db        = ihaveu_development

3:  bind-address前面加上#符号,以注释掉这行内容。

4: 在slave机器的mysql添加允许master访问的用户。
1》 进入mysql数据库

2》 添加用户(其中192.168.0.129是master机器的ip,zcy和1234是允许访问的用户名和密码,而GRANT ALL PRIVILEGES是给与所有权限)
GRANT ALL PRIVILEGES ON *.* TO zcy@192.168.0.129 IDENTIFIED BY '1234';
注意: 测试这一步可以进入mysql的mysql数据库中,select user,host from user;

3》 测试第三步和第四步,进入master机器中,mysql -h 192.168.0.130 -u zcy -p,如果可以进入mysql,证明前面的设置正确。

5:  向master及其的my.cnf,配置以下信息:

master-host        =192.168.0.130
master-user        =zcy
master-password        =1234
master-port        =3306
master-connect-retry    =10
binlog-do-db        =ihaveu_development

测试:
在master机器中的mysql
show  slave status\G;

4: 最后的测试

在slave中的mysql中的ihaveu_development数据库中插入一条数据,然后进入master的mysql中查看

注意:
不能用客户端工具手动插入数据,可以使用sql语句或者使用ruby语言插入数据。
分享到:
评论

相关推荐

    MySql数据库同步复制

    MySQL 数据库同步复制是一种强大的技术,它允许两个或多个数据库实例之间保持数据一致性。这种功能在高可用性、灾难恢复和负载均衡场景中至关重要。在MySQL中,同步复制主要通过主从模式和双机互备模式来实现。 1. ...

    MySQL数据库的同步

    【MySQL数据库同步】 在当前数字化时代,MySQL数据库的同步至关重要,因为它们承载着大量关键业务数据。MySQL是一个广泛应用的开源关系型数据库管理系统,尤其在中小型企业及网站中颇为流行,因其小巧、快速、成本...

    mysql数据库同步canal框架分享PPT

    mysql数据库同步canal框架分享PPT mysql数据库同步canal框架分享PPT

    sqlserver与mysql数据库同步

    总结来说,SQL Server与MySQL数据库同步是一个复杂的过程,涉及多个步骤和技术选择。根据项目需求和资源,可以选择最合适的同步策略和工具,以实现高效、安全的数据同步。在实施过程中,务必对可能遇到的问题进行...

    MySQL数据库同步

    MySQL 数据库同步是指通过特定的技术手段实现在多个MySQL数据库实例之间复制数据的过程。这种技术对于构建高可用性、高性能以及容灾备份等场景至关重要。本文将详细介绍MySQL 3.23.15版本之后提供的数据库同步功能,...

    mysql数据库同步

    ### MySQL数据库同步详解 在IT领域,特别是在数据库管理与维护方面,MySQL数据库的主从同步是一种常见的技术手段,用于实现数据的高可用性和容灾备份。本文将详细解析MySQL数据库的主从同步机制,包括其配置步骤、...

    java实现两个mysql同步主库的数据

    以上就是使用Java实现两个MySQL数据库同步的主要步骤和涉及的技术点。在实际开发中,你可能还需要关注性能优化、安全性、可扩展性等问题。通过这种方式,你可以构建一个可靠的数据库同步系统,保证数据的一致性,...

    树莓派开发笔记(十七):树莓派4B+上Qt多用户连接操作Mysql数据库同步(单条数据悲观锁).doc

    树莓派开发笔记(十七):树莓派 4B+ 上 Qt 多用户连接操作 Mysql 数据库同步(单条数据悲观锁) 本篇文章主要讲述了树莓派 4B+ 上使用 Qt 框架连接 Mysql 数据库,并实现多用户连接操作和悲观锁机制,以解决数据...

    sqlserver、mysql数据库同步备份工具

    这时,就需要第三方工具介入,如标题所提及的“数据库同步备份工具”。 这类工具通常具有以下特性: 1. **实时同步**:允许用户设置实时或计划的任务,以保持两个数据库之间的数据一致性。 2. **双向同步**:不仅...

    Mysql一键数据库同步和主主同步脚本

    MySQL数据库同步和主主同步是数据库管理中的重要概念,尤其对于需要实时数据共享或高可用性的系统至关重要。这里我们详细探讨这两个主题,并介绍如何通过特定的脚本来简化这一过程。 首先,**数据库同步**指的是将...

    同步数据,数据库同步,sql数据库同步

    同步当前数据库和服务器数据库的数据,使得两个数据库的数据一致,这个属于sql的高级应用,相信对你们都很有用处,也可以对你们的数据库能用有所提示,是一篇比较好的资料,由于该资料是本人开发的,所以希望尊重...

    mysql sync other mysql 数据库同步方案

    通过解析binlog日志增量更新到mysql数据库的一个服务

    MYSQL数据库同步配置

    详细记录如果配置MYSQL及代码运行,完美解决两台服务器中的mysql同步问题

    数据库同步软件【官方】免费版

    SyncNavigator数据库同步软件是一款 SQLSERVER,MYSQL 数据库同步软件。它为您提供一种简单智能的方式完成复杂的数据库数据同步,分发操作。 SyncNavigator 可以帮助您快速的完成数据库的数据同步。不需要专业的...

Global site tag (gtag.js) - Google Analytics