- 浏览: 2511970 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (676)
- linux运维 (157)
- php (65)
- mysql (78)
- nginx (27)
- apche (18)
- framework (6)
- windows (9)
- IDE工具 (23)
- struts2 (7)
- java (13)
- 移动互联网 (14)
- memcache redis (23)
- shell基础/命令/语法 (37)
- shell (50)
- puppet (4)
- C (11)
- python (9)
- 产品经理 (27)
- Sphinx (4)
- svn (12)
- 设计构建 (12)
- 项目管理 (44)
- SEO (1)
- 网站架构 (26)
- 审时度势 (42)
- 网络 (14)
- 激发事业[书&视频] (81)
- 其它 (12)
- 摄影 (8)
- android (21)
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
A服务器:
host 192.168.1.101
port 3306
B服务器:
host 192.168.1.102
port 3306
1,授权用户:
A服务器
mysql>grant replication slave,file on *.* to 'repl9'@'192.168.1.102' identified by '1234569';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
B服务器
mysql>grant replication slave,file on *.* to 'repl8'@'192.168.1.101' identified by '1234568';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
2,配置文件
A服务器
log-bin=mysql-bin
server-id = 1
binlog-do-db=test
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
master-host = 192.168.1.102
master-user = repl8
master-password = 1234568
master-port = 3306
B服务器
log-bin=mysql-bin
server-id = 2
binlog-do-db=test
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2
auto_increment_offset = 2
master-host = 192.168.1.101
master-user = repl9
master-password = 1234569
master-port = 3306
启动服务器就ok了
--------------------------------------------------
Q: 当在另一台机器上登录MySQL时出现如下错误:
ERROR 2003 (HY000): Can't connect to MySQL server on 'x.x.x.x' (111)
A: 原因是MySQL考虑到安全因素,默认配置只让从本地登录
打开 /etc/mysql/my.cnf 文件,找到 bind-address = 127.0.0.1 修改为 bind-address = 0.0.0.0
重启mysql : sudo /etc/init.d/mysql restart
========================================
101 增加,102不同步 ?????????
mysql -h192.168.1.102 -urepl8 -p1234568 ok
102 增加,101 同步
mysql -h192.168.1.101 -urepl9 -p1234569 ok
比较两组的show slave status\G;
102
Slave_IO_Running: No
Slave_SQL_Running: Yes
Replicate_Do_DB: test
Replicate_Ignore_DB: mysql
sudo /etc/init.d/mysql restart
sudo service mysql restart 以后就变成:lave_IO_Running: YES
出现的问题(多主自增长ID重复)
解决方法:
我们只要保证两台服务器上插入的自增长数据不同就可以了
如:A查奇数ID,B插偶数ID,当然如果服务器多的话,你可以定义算法,只要不同就可以了
在这里我们在A,B上加入参数,以实现奇偶插入
A:my.ini上加入参数
auto_increment_offset = 1
auto_increment_increment = 2
这样A的auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID了
B:my.ini上加入参数
auto_increment_offset = 2
auto_increment_increment = 2
这样B的auto_increment字段产生的数值是:2, 4, 6, 8, …等偶数ID了
可以看出,你的auto_increment字段在不同的服务器之间绝对不会重复,所以Master-Master结构就没有任何问题了。当然,你还可以使用3台,4台,或者N台服务器,只要保证auto_increment_increment = N 再设置一下auto_increment_offset为适当的初始值就可以了,那样,我们的MySQL可以同时有几十台主服务器,而不会出现自增长ID重复。
在这里我们说的是2台MYSQL服务器,你也可以扩展到多台,实现方法类似
A -> B -> C-> D ->A
这样一个环形的备份结构就形成了,最后可要记住 自增长ID(主键)要设计好哦,否则会出错的。
发表评论
-
mysql表修复
2015-04-07 10:16 102341.1命令myisamchk(必须停掉mysql服务,或者所操 ... -
Table_locks_immediate
2014-08-25 15:46 2965Table_locks_immediate表示立即释放表锁数 ... -
mysql分区
2014-02-21 10:38 1804mysql自5.1开始支持分区 ... -
InnoDB 引擎独立表空间 innodb_file_per_table
2013-02-25 11:14 1267http://deeplyloving.iteye.com ... -
mysql监测工具tuning-primer.sh
2013-01-21 17:57 2610【转】http://www.dbasky.net ... -
mysql主从日志的定期清理
2013-01-21 16:24 1120[转]http://wangwei007.blog.51 ... -
[转]Mysql报错:Result consisted of more than one row
2013-01-09 16:25 15793Error Code : 1172 Result consi ... -
根据bin log 分析管理员被莫名删除问题
2013-01-04 17:04 1116============== 根据bin log 分析管理 ... -
mysql中select * for update锁表的问题
2013-01-04 14:07 2476先前介绍过SELECT ... FOR UPDATE的用法 ... -
PDO报错:Cannot execute queries while other unbuffered queries are active.
2012-12-12 17:57 11775用 PDOStatement->execute() 执行 ... -
MySQL死锁导致无法查询
2012-12-11 14:51 2519客服反馈后台无法查询,原因大概知道,是因为MySQL的事务 ... -
mysql性能分析:mysql profiling 应用
2012-12-11 10:26 13111)先打开profiling ==> set pro ... -
mysql体系结构和查看当前的数据库请求
2012-12-07 15:00 2860mysql体系结构: 由 ... -
mysql_error:Error starting thread: Resource temporarily unavailable
2012-11-01 17:57 2070121031 18:53:17 InnoDB: Unable ... -
导出bin log时间段脚本datarecover.sh
2012-09-06 13:34 1185修改 _binlogdir='/data/mysql/m ... -
Mysql备份工具xtraback全量和增量测试
2012-08-17 14:58 3817【转载】http://blog.chinaunix.net/s ... -
数据库中的隔离级别和锁机制
2012-08-09 17:55 1548ANSI/ISO SQL92标准定义了 ... -
mysqldump和mysql命令
2012-08-03 13:44 1346========================= mys ... -
【汇总】mysql join
2012-07-18 11:35 1136标准SQL中CROSS JOIN交叉连接(笛卡尔积)和内连接I ... -
mysql cursor游标的使用,实例
2012-07-17 23:09 1761mysql被oracle收购后,从mysql-5.5开始, ...
相关推荐
mysql 主主数据同步 步骤。关键步骤给出。按步骤走 必然可以
mysql主主同步配置
Keepalive+mysql主主同步图文教程
KEEPALIVED+MYSQL主主同步=MYSQL高可用(HA)集群.docx
MySQL 主主同步配置 服务器名 IP 系统 MySQL odd.example.com 192.168.1.116 rhel-5.8 5.5.16 even.example.com 192.168.1.115 rhel-5.8 5.5.16假设要同步的库是 db_rocky ㈠ 创建同步用户 在 ODD上 代码如下:...
MySQL的主从复制、半同步复制、主主复制详解,很不错,可以下载看看
数据库数据同步和主主同步脚本简化了用户在配置MYSQL主主同步的操作,用户只需要执行相应的脚本,就能完成主主同步配置。 改代码解压后需要在解压目录中:执行dos2unix * 目录里有使用说明
MySQL主主双向同步测试报告.pdf
图文记录mysql主主同步配置的全过程
LVS+Keepalived+MySQL半同步主主复制高可用方案
使用Kettle同步mysql数据,增量同步,两个数据库数据同步
资源为我根据自身工作经验编写的MySQL数据库同步配置手册,生产环境也按此方法配置,非常实用。用Md格式编写后转换为PDF格式的。
mysql集群多主同步教程,支持配置合集群多台MYSQL,都是主主,和一般的读写分离方案不一样。是mysql云中部署,解决高可用和模向扩展的实用技术资源。
Mysql 主主同步架构详细文档
两个mysql数据库之间实现同步,通过定时任务实现从主库到从库的同步,java代码实现,所有java项目包括配置都有,数据结构可以跟据自己的特定情况去改
MySql 主从、主主同步,异步主主同步.docx
超详细MySQL主从配置和主主同步总结。。。。。。。。。
mysql,两个数据库,实现实时数据同步,对于需要实现mysql同步的用户非常有用
分别有:数据源配置、数据表结构转换、字段更新、数据迁移、根据oracle SQL的UPDATE DELETE 事物执行记录转为Mysql可执行SQL,同步执行到MySql数据库,此项目为个人兴趣爱好练手项目,项目问题欢迎留言,共同进步...