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中,同步复制主要通过主从模式和双机互备模式来实现。 1. ...
【MySQL数据库同步】 在当前数字化时代,MySQL数据库的同步至关重要,因为它们承载着大量关键业务数据。MySQL是一个广泛应用的开源关系型数据库管理系统,尤其在中小型企业及网站中颇为流行,因其小巧、快速、成本...
mysql数据库同步canal框架分享PPT mysql数据库同步canal框架分享PPT
总结来说,SQL Server与MySQL数据库同步是一个复杂的过程,涉及多个步骤和技术选择。根据项目需求和资源,可以选择最合适的同步策略和工具,以实现高效、安全的数据同步。在实施过程中,务必对可能遇到的问题进行...
MySQL 数据库同步是指通过特定的技术手段实现在多个MySQL数据库实例之间复制数据的过程。这种技术对于构建高可用性、高性能以及容灾备份等场景至关重要。本文将详细介绍MySQL 3.23.15版本之后提供的数据库同步功能,...
### MySQL数据库同步详解 在IT领域,特别是在数据库管理与维护方面,MySQL数据库的主从同步是一种常见的技术手段,用于实现数据的高可用性和容灾备份。本文将详细解析MySQL数据库的主从同步机制,包括其配置步骤、...
以上就是使用Java实现两个MySQL数据库同步的主要步骤和涉及的技术点。在实际开发中,你可能还需要关注性能优化、安全性、可扩展性等问题。通过这种方式,你可以构建一个可靠的数据库同步系统,保证数据的一致性,...
树莓派开发笔记(十七):树莓派 4B+ 上 Qt 多用户连接操作 Mysql 数据库同步(单条数据悲观锁) 本篇文章主要讲述了树莓派 4B+ 上使用 Qt 框架连接 Mysql 数据库,并实现多用户连接操作和悲观锁机制,以解决数据...
【标题】:“从sqlserver同步数据到Mysql数据库”是一个典型的跨数据库系统数据迁移的案例。在信息技术领域,数据迁移是常见的操作,特别是在企业级应用中,可能由于业务需求、性能优化或者系统升级等原因,需要将...
这时,就需要第三方工具介入,如标题所提及的“数据库同步备份工具”。 这类工具通常具有以下特性: 1. **实时同步**:允许用户设置实时或计划的任务,以保持两个数据库之间的数据一致性。 2. **双向同步**:不仅...
MySQL数据库同步和主主同步是数据库管理中的重要概念,尤其对于需要实时数据共享或高可用性的系统至关重要。这里我们详细探讨这两个主题,并介绍如何通过特定的脚本来简化这一过程。 首先,**数据库同步**指的是将...
同步当前数据库和服务器数据库的数据,使得两个数据库的数据一致,这个属于sql的高级应用,相信对你们都很有用处,也可以对你们的数据库能用有所提示,是一篇比较好的资料,由于该资料是本人开发的,所以希望尊重...
通过解析binlog日志增量更新到mysql数据库的一个服务
详细记录如果配置MYSQL及代码运行,完美解决两台服务器中的mysql同步问题