海洋CMS

 找回密码
 注册加入

海洋cms最新动态 关注跟踪研发进展,共创和谐未来 开源透明 完全免费 - 极致专注 精益求精

海洋CMS 6.x 正式版下载 永久免费并开源的影视建站程序 使用教程 - 模板标签 - 模板 - 播放器

火车头采集发布视频文章 - - 定时自动采集教程 迅雷下载展示插件及教程 - - 定时自动生成使用说明 原MaxCms模板转换教程 - - 原MaxCms数据转换工具

查看: 804|回复: 2

用Mysql的实时同步技术实现多个网站数据同步的办法

[复制链接]

158

主题

1922

帖子

968万

积分

管理员

Rank: 9Rank: 9Rank: 9

金币
9670283
发表于 2017-7-31 18:40:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册加入

x
原文:http://blog.csdn.net/xu1314/article/details/7693922

设置方法:
步一设
A 服务服 (192.168.1.43) 上用户为 backup, 123456 , 同步的数据库为test;
B 服务服 (192.168.1.23) 上用户为 root, 123456, 同步的数据库为test;

步二配置 MySQL.ini:
A服务器

#Replication master
server-id = 10
log-bin="E:\mysql\logs\mysql_binary_log"//必须先创建这个文件
binlog-do-db=test

# Replication slave
master-host="192.168.1.23"
master-user=root
master-password="123456"
master-port=3306
master-connect-retry=60
replicate-do-db=test

B服务器

#Replication master
server-id = 2
log-bin="c:\mysql5\logs\mysql_binary_log"
binlog-do-db=test

# Replication slave
master-host="192.168.1.43"
master-user=backup
master-password=123456
master-port=3306
master-connect-retry=60
replicate-do-db=test

=============================================================
解释:

3)binlog-do-db=test 表示需要备份的数据库是test这个数据库,
如果需要备份多个数据库,那么应该写多行,如下所示:
binlog-do-db=backup1
binlog-do-db=backup2
binlog-do-db=backup3


解释:
1) server-id=2表示本机器的序号, A,B的server-id 不能相同;
2)log-bin表示打开binlog,打开该选项才可以通过I/O写到Slave的relay-log,也是可以进行replication的前提;
其中mysql_binary_log是日志文件的名称,mysql将建立不同扩展名,文件名为mysql_binary_log的几个日志文件.
3) master-host="192.168.1.23" 表示A做slave时的master为192.168.1.23;
4) master-user=root 这里表示master上开放的一个有权限的用户,使其可以从slave连接到master并进行复制;
5) master-password=123456 表示授权用户的密码;
6) master-port=3306 master上MySQL服务Listen3306端口;
7) master-connect-retry=60 同步间隔时间;
8) replicate-do-db=test 表示同步backup数据库;


最后重新启动两台机器的mysql.
------------------------------------------------
查看状态及调试

1,查看master的状态
SHOW MASTER STATUS;
Position 不应为0
2,查看slave的状态
show slave status;
Slave_IO_Running | Slave_SQL_Running 这两个字段应为 YES|YES.
show processlist;
会有两条记录与同步有关 state为 Has read all relay log; waiting for the slave I/O thread to update it
和s Waiting for master to send event .
3,错误日志
MySQL安装目录\data\Hostname.err

4,CHANGE MASTER TO
如果A 的 Slave 未启动 ,Slave_IO_Running 为No.
可能会是B的master 的信息有变化,
查看B SHOW MASTER STATUS;
记录下 File,Position 字段. 假设为'mysql_binary_log.000004',98 ;
在A 下执行:
Stop Slave;
CHANGE MASTER TO
MASTER_LOG_FILE = 'mysql_binary_log.000004',
MASTER_LOG_POS = 98 ;

Start Slave;

5,SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;
如果A的Slave_SQL_Running 为No.
Err文件中记录:
Slave: Error 'Duplicate entry '1' for key 1' on query....
可能是master 未向slave 同步成功,但slave中已经有了记录。造成的冲突.
可以在A上执行
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;
跳过几步。再
restart salve;
就可以了。

7

主题

38

帖子

471

积分

中级会员

Rank: 3Rank: 3

金币
80
发表于 2017-8-4 15:28:22 | 显示全部楼层
我想把批量数据添加分类属性应该怎么做,比如搜索“123”标题关键词,为这些影片添加版本分类或者语言分类,该怎么做呢?
回复

使用道具 举报

13

主题

268

帖子

2954

积分

金牌会员

Rank: 6Rank: 6

金币
874
发表于 2017-8-16 17:06:48 | 显示全部楼层
这样的主从同步这个有局限,从数据库不能写入,只能由主服务器写入,从服务器只做同步和读取.不然就会造成数据不同步出现错误
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册加入

本版积分规则

小黑屋|海洋CMS

GMT+8, 2018-9-25 18:05 , Processed in 0.055474 second(s), 21 queries .

Powered by SeaCMS .Net

© 2018 All Rights Reserved

快速回复 返回顶部 返回列表