转:设置mysql同步

MySQL半同步复制 所以,半同步复制最好在低延时的网络中使用。MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。当半同步复制发生超时(由rpl_semi_sync_master_timeout参数控制,默认为10000ms,即10s),会暂时关闭半同步复制,转而使用异步复制,也就是会自动降为异步工作。 阅读详情

預設環境
Master
= 192.168.1.102
Slave
= 192.168.1.103
要進行資料同步的資料庫
= shian
Mysql 安裝位置
= /usr/local/mysql
注意:
我所安裝的Mysql是用Tarball方式安裝,所以下面的Mysql路徑會有所不一樣 , 請依照你的主機路徑做變更
安裝流程
1. 在Master上開一個帳號給Slave
2. 關閉 Master 的 MySQL
3. 備份要同步化的資料庫
4. 編輯 /etc/my.cnf 檔
5. 啟動 Master 的MySQL
6. 查看Master 是否有設定正確
7. 將備份的資料庫檔  scp 到 Slave
8. 關閉 Slave 的 MySQL
9. 編輯 /etc/my.cnf 檔
10. 解開備份資料庫檔案
11. 啟動 Slave 的 MySQL
12. 測試同步化是否成功


開始安裝

一. 設定Master:
1. 開放一個帳號給Slave連接使用
# /usr/local/mysql/bin/mysql -u root -p
# GRANT REPLICATION SLAVE on *.* to cslave@192.168.1.103 identified by 'cslave0504';
註:
GRANT REPLICATION SLAVE 為MySQL 4.0.2 以後的版本,如果是之前的版本則使用 GRANT FILE
cslave = 帳號 
192.168.1.103 = Slave ip 
cslave0504 = 密碼
# quit

2. 將MySQL關掉
# /usr/locale/mysql/share/mysql/mysql.server stop

3. 備份要同步化的資料庫
# cd /usr/locale/mysql/var/
# tar -zcpf shian.tar.gz shian/
註:
tar 指令加了參數 p, 將檔案權限一併記錄起來, 解壓縮的時候才不用再變更檔案屬性

4. 編輯 /etc/my.cnf
註:
如果在/etc下沒有my.cnf檔,可以從/usr/local/mysql/share/mysql下複製 *.cnf 到 /etc/my.cnf
# cp /usr/local/mysql/share/mysql/my-small.cnf /etc/my.cnf
# vi /etc/my.cnf
在 [mysqld] 區段加入下面這些參數:
server-id = 1
log-bin = /usr/local/mysql/var/vmcentos-bin
binlog-do-db = shian

註:
server-id = 1 <= x其中x為主機id=1,2,3 1為最大所以在master上設server-id為1
log-bin = /usr/local/mysql/var/vmcentos-bin <= 記錄 Master 所有更動 LOG 記錄下來,讓 Slave 過來同步, 上面所寫的位置為我MySQL的位置 ,vmcentos:主機名稱
binlog-do-db = shian <= 對 shian 這資料庫做同步化的記錄 ,如需多個資料庫則必須再新增一行 binlog-do-db = XXX

5. 啟動Mysql
# /usr/local/mysql/share/mysql/mysql.server start

6. 查看 Master 是否有同步化 shian 資料庫
# /usr/local/mysql/bin/mysql -u root -p
# SHOW MASTER STATUS;
+---------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+----------+--------------+------------------+
| vmcentos-bin.000001 | 596 | shian |                           |
+---------------------+----------+--------------+------------------+

如果在 Binlog_Do_DB 有出現所指定要同步化的資料庫如shian , 則表示 Master 正在同步化 shian 資料庫

7. 將備份的資料庫 shian 丟給其它的 Slave server 上
# cd /usr/local/mysql/var
# scp shian.tar.gz shian@192.168.1.103:/tmp

二. 設定Slave:
1. 將MySQL關掉
# /usr/locale/mysql/share/mysql/mysql.server stop

2. 編輯 /etc/my.cnf
如果在/etc下沒有my.cnf檔,可以從/usr/local/mysql/share/mysql下複製 *.cnf 到 /etc/my.cnf
# cp /usr/local/mysql/share/mysql/my-small.cnf /etc/my.cnf
# vi /etc/my.cnf
在 [mysqld] 區段加入下面這些參數:
server-id=3
log-bin=suse-bin
relay-log=suse-relay-bin
replicate-do-db=shian
replicate-same-server-id
master-host=192.168.1.102
master-user=cslave
master-password=cslave0504
master-port=3306
master-connect-retry=60

註:
server-id=3 <= 為主機id=3
log-bin=suse-bin <= Slave 二進位記錄檔
relay-log=suse-relay-bin <= Slave 二進位記錄檔
replicate-do-db=shian <= 指定要同步化的資料庫, 如需多個資料庫則多加 replicate-do-db=xxx 即可
replicate-same-server-id
master-host=192.168.1.102 <= Master ip
master-user=cslave <= Master 所給的帳號
master-password=cslave0504 <= Master 所給的密碼
master-port=3306 <= Master 的 MySQL port
master-connect-retry=60 <= 錯誤發生重試的間隔時間(60秒)


3. 解開 Master 備份好的資料庫檔案
# cd /usr/local/mysql/var
# tar -zxvf /tmp/shian.tar.gz
註: 如果解出來的檔案、目錄權限不對的話, 可以用 chown、chmod 來變更

4. 啟動 MySQL
# /usr/local/mysql/share/mysql/mysql.server star

三. 測試是否同步化成功
進入Mysql後下 SHOW SLAVE STATUS/G; 這指令 ,
查看 Slave_IO_Running: Yes , Slave_SQL_Running: Yes, 這二個選項都為Yes表示同步化成功,
然後在 Master 主機上 新增一個 table 後並新增一筆資料, 然後在 Slave 如也有新增同樣的 table 並 也有相同的資料,則表示同步化成功,
如果 Slave 主機出問題或關機 ,並不會影響 Master 運作, 等 Slave 恢復正常後會自己做同步化Master的動作

四. 錯誤訊息
1. No argument was provided to --log-bin, and --log-bin-index was not used; so replication may break when this MySQL server acts as a master and has his hostname changed!! Please use '--log-bin=suse-bin' to avoid this problem.
A: 在 /etc/my.cnf 的[mysqld]裡加上這參數 log-bin=suse-bin, (suse為我的主機名,所以每一台會不一樣)

2. Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay-log=suse-relay-bin' to avoid this problem.
A: 在 /etc/my.cnf 的[mysqld]裡加上這參數 relay-log=suse-relay-bin (suse為我的主機名,所以每一台會不一樣)

3. [ERROR] The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
A: 在 /etc/my.cnf 的[mysqld]裡加上這參數 replicate-same-server-id

參數說明可以參考這篇 http://twpug.net/docs/mysql-5.1/replication.html

另外需要注意的就是binlog产生后,如何设置同步点的问题。由于mysql 只会在第一次设置my.ini/my.conf文件的时候读取默认mysqld段中replications信息。因此一但产生了master.info信息,那么以后每次读取同步点信息都是从这个文件里读取,你怎么改mysqld里的配置信息都没有。所以才需要mysql 命令 master chang to +相应变量修改来修改同步点信息。 master.info信息在 data目录下,我没试过linux下mysql 的实际文件产生位置,应该差不多。如果需要修改同步配置信息。2个方法。最省事情的方法就是停掉mysql 的服务,然后删除master.info和log信息文件。这样mysql再下次启动的时候会重新读取mysqld里的信息。当然这有个前提,replication 动作已经是成功的。否则如故master_log_file和master_log_pos等等信息不对,那么就算重新配置了,你还是需要用change master to 来修改。 第二个方法就是用change master to 来修改。这个修改动作都是在slave 机器上进行的。首先你需要用 slave stop 停掉slave 服务,然后是change master to ,最后slave start.



五. 結語
如果在啟動MySQL失敗或無法同步化資料庫時,可以先查看LOG檔, /usr/local/mysql/var/vmcentos.err 這是我的記錄檔的位置, 如果有記錄檔裡有error or waring訊息,表示有錯誤必須排除,訊息不難懂看一下就可知道哪裡有錯誤

mysql双向同步设置及基本原理 1        背景介绍 学校内部有一台服务器(3g服务器),上面部署着uvge网站。在上海有一台服务器(上海服务器)。考虑到校外用户访问uvge网站时速度很慢,先决定在上海服务器上也部署个相同的网站,当外网用户想访问uvge网站时就访问上海服务器上的网站。 现在就需要解决 阅读详情

相关推荐

Jetson Orin NX深度学习环境配置全攻略:从JetPack到PyTorch避坑指南

本文提供Jetson Orin NX深度学习环境配置的完整避坑指南。重点讲解如何正确利用JetPack SDK作为系统基石,使用Miniforge管理Python环境,并安装与CUDA版本严格匹配的PyTorch特供版本。通过详细的步骤和验证方法,帮助开发者在ARM架构的嵌入式平台上高效搭建稳定的AI开发工作站。

yolo5detector的博客 272

mysql-5.7.10-winx64 MySQL服务无法启动,服务没有报告任何错误的解决办法

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34306676的博客 215

WorkBuddy入门到 多Agent团队协作完全指南(附实操代码与配图)

WorkBuddy的Agent Teams功能支持多智能体协作,通过创建AI团队提升复杂任务处理效率。该功能支持自然语言创建团队、任务分配与依赖管理、成员间消息通信(包括直接消息和广播),并提供任务审批机制。典型应用场景包括软件开发、内容创作等协作任务。环境要求WorkBuddy 2026年3月及以上版本,支持Windows和macOS系统。用户可快速创建包含不同角色的AI团队,通过共享任务列表和信箱系统实现协作。高级功能包括委派模式、任务依赖管理和成员自主认领等,适合各类协作场景。

三棱球的专栏 6459

linux读取iso,Linux下iso文件的读取,创建

chinaunix网友2009-07-13 14:05我是Mysql 数据库同步:现状是:slave_io_running:no, slave_sql_running:yeslast_err: 是[Warning] No argument was provided to --log-bin, and --log-bin-index was not used; so replication ...

weixin_30249953的博客 139

解密QtIFW高级配置:用XML+JS打造品牌化安装界面(含动态水印/多语言技巧)

本文深入探讨了如何利用Qt Installer Framework(QtIFW)的高级配置功能,通过XML和JavaScript打造专业、品牌化的软件安装界面。文章详细解析了企业级项目目录结构设计、模块化配置文件编写、CSS样式表深度定制、动态水印实现以及智能多语言许可证管理等核心技巧,旨在帮助开发者超越基础打包,为Windows和Linux平台构建具有卓越用户体验的安装程序。

read5的博客 528

基于Llama 3搭建中文版(Llama3-Chinese-Chat)大模型对话聊天机器人

前面两篇博文,我们在笔记本部署了Llama 3 8B大模型,使用Ollama搭建了基于Web 可视化对话机器人。在使用过程中,大模型经常出现中文问题英文回答的问题。本博文就用Llama3-Chinese-Chat微调模型来解决这个问题……

老牛啊 9239

linux软链接上传svn,svn 软链接问题

chinaunix网友2009-07-13 14:05我是Mysql 数据库同步:现状是:slave_io_running:no, slave_sql_running:yeslast_err: 是[Warning] No argument was provided to --log-bin, and --log-bin-index was not used; so replication ...

weixin_42144554的博客 497

JNI的本质解析:Android Framework视角下的Java-Native衔接机制

本文基于Android 14源码深入分析JNI机制,从Android Framework视角解析Java-Native衔接原理。主要内容包括:JNI的双轨制注册机制(静态与动态注册),核心数据结构(JNIEnv与JavaVM)的实现原理,以及完整的调用链路剖析。文章通过MessageQueue的JNI实现案例,展示Android Framework如何利用JNI实现Java层与Native层的高效交互,并提供了性能优化建议。分析表明,JNI作为Android系统架构的关键桥梁,其设计充分考虑了性能、安全性

保持专注,保持热爱 1211

mysql-5.7.10-winx64 MySQL服务无法启动,服务没有报告任何错误,请键入 NET HELPMSG 3534 以获得更多的帮助

我在Oracle官网mysql-5.7.10-winx64的tar的版本(非安装版),解压后发现没有data文件夹,于是在mysql-5.7.10-winx64下自己手动新建了data目录,并写入了人my.ini的文件 datadir=D:\Program Files\mysql-5.7.10-winx64\data D:\Program Files\mysql-5.7.10-winx64

flancklin的博客 2万+

实现电脑同时上内网和外网(或通过外网访问到该电脑通过该电脑访问内网)

一、需求描述 目前使用的公司网络只能够上内网,但是又有上外网查资料的需求: ①想要实现电脑既能上内网的同时也可以上外网; ②想要使用其他外网电脑使用外网连接到该电脑,通过该电脑访问内部的网络内容。 二、准备内容 电脑必须具备两个网卡,即:可以同时连接内网和外网(比如我的笔记本就可以:使用网线连接笔记本网口与内网通讯,使用WIFI连接手机热点访问外部网络); 注意:如果只有一个网口,可以另外购买USB的无线网卡来实现上网卡。 三、实现电脑同时上内网和外网的操作步骤 3.1、网络拓扑图 ..

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 2万+

RDkit入门

今天开始写RDkit的入门教程,每天学习和写一小点,相信一句话“不积跬步无以至千里,不积小流无以成江海”,所以就慢慢来,一点一滴积累叭,从最简单的开始喽希望自己每天都能保持写博客的好习惯,把自己的代码笔记就极在这里,RDkit一块啃了很久的骨头,今天终于要下定决心,好好总结一波了,希望保持这个更新的频率,每天都能有所学。............

博客而已 6684

mysql replication复制错误(zt)

本文转自:http://www.hiadmin.com/mysql-replication%C3%A5%C2%A4%C2%8D%C3%A5%C2%88%C2%B6%C3%A9%C2%94%C2%99%C3%A8%C2%AF%C...

cuizhu0832的博客 395

Apollo Control——超详细入门教程(六):MPC二次规划问题转化

专栏文章列表 Apollo Control——超详细入门教程(一):基于道路误差的车辆动力学模型 Apollo Control——超详细入门教程(二):连续状态空间方程离散化与离散LQR公式推导 Apollo Control——超详细入门教程(三):基于Frenet坐标系及XY坐标系的多项式轨迹生成 Apollo Control——超详细入门教程(四):控制模块轨迹误差计算 Apollo Control——超详细入门教程(五):油门刹车标定表之双线性插值算法 ...

凉了鸭的博客 2233

mysql设置数据库同步_简单的设置mysql同步的方法

如何正确设置MySQL同步?今天给大家系统介绍mysql同步的设置,在实际的应用中体会设置mysql同步的操作。我们今天主要向大家描述的是正确设置MySQL同步(replication)的实际操作步骤,下面就是文章的主要内容的描述。此文章主要向大家描述的是设置MySQL同步(replication)的实际操作流程,其中包括准备服务器,设置同步服务器,如果你对其实际操作步骤有兴趣了解的话,你就可以通...

weixin_30452659的博客 5534

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

MySQL数据库设置主从同步

MySQL主从同步是目前使用比较广泛的数据库架构,技术比较成熟,配置也不复杂,特别是对于负载比较大的网站,主从同步能够有效缓解数据库读写的压力。MySQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态),Slave MySQL上通过一个I/O线程从Master MySQL上读取binlog,然后传输到Slave MySQL的中继日志中,然后Slave MySQL的SQL线程从中继日志中读取中

没有开花的树 4万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

mysql同步时间设置_mysql数据同步设置

使用的mysql版本:mysql4.0.Xmaster: 192.168.1.102slave: 192.168.1.109如果是win机子修改c:\winnt\my.ini 如果是linux的机子请修改 /etc/my.cnf一、master操作1、修改my.ini##############server-id=1log-bin=c:\mysql\logs\mysql_binary_logbin...

weixin_27038701的博客 721

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

MySQL 主备同步设置

数据库主备同步,将mysqlA 中的数据同步mysqlB 中,mysqlA 作为主库,mysqlB作为备库。

sszdzq的博客 1600

MySQL:异步、半同步、同步、异步

增强半同步复制(Enhanced Semi‐Synchronous Replication)依然属于半同步复制范畴,但用更现代的插件架构及更多可调参数来克服传统半同步的性能瓶颈与可用性限制。

喝醉酒的小白 1499

Mysql时间同步设置

请注意,上述步骤是一个简化的示例,实际情况中可能会因操作系统、MySQL版本和数据库安全性设置而有所不同。在实际操作中,请务必小心谨慎,并确保备份数据库数据。您可以设置一个定时任务(cron任务),定期运行一个脚本来同步数据库时间。当涉及到设置MySQL数据库时间与电脑同步时,实际的步骤可能会因操作系统和数据库版本的不同而有所差异。在Windows上,您可以在服务中找到MySQL服务并重启它。最后,您可以使用cron任务来定期运行脚本。首先确保电脑操作系统的时间是正确的。将上面的脚本保存为例如。

Go_ahead_forever的博客 1585

mysql设置同步_mysql设置主从同步

1、主从同步定义主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服务器。通过配置文件,可以指定复制所有的数据库,某个数据库,甚至是某个数据库上的某个表。使用主从同步的好处:通过增加从服务器来提高数...

weixin_35880510的博客 334

mysql同步 linux_linux下的mysql 同步设置

一.设主服务器IP:10.35.51.1从服务器IP:10.35.51.2二. 主服务器端1.设置用户(目的是在从服务器上用此用户登录能够访问主服务器上要同步的那个数据库):GRANT FILE ON *.* TO 'yeshb'@'%' IDENTIFIED BY ‘123456’;//创建用户:yeshb;密码:123456GRANT REPLICATION slave ON *.* TO ‘...

weixin_33736210的博客 338

mysql 命令行 设置同步_设置MySQL主从同步

1. 配置主服务器1.1 编辑my.cnf文件,配置主服务器ID。[mysqld]log-bin=mysql-binserver-id=1relay-log = relay-binrelay-log-index = relay-bin.index1.2 重启主服务器。2. 配置从服务器2.1 编辑my.cnf文件,配置从服务器ID。[mysqld]server-id=22.2 重启从服务器。3. ...

weixin_42513601的博客 284

ClickHouse与MySQL之间实时同步数据(MySQL引擎),将MySQL数据实时同步到clickhouse

mysql,clickhouse数据实时同步

奔跑的小番茄 2108

mysql 命令行 设置同步_MySQL同步(二) 设置同步

File 字段显示了二进制日志文件名,Position 字段显示了日志偏移位置。在这个例子中,日志文件是 mysql-bin.003,偏移位置是 73。记下这些值,在后面设置slave的时候就需要用到它们了。它们表示了slave要从master的哪个偏移位置开始处理更新操作。取得快照和记录下日志名及偏移位置后,就可以让master释放读锁了:mysql> UNLOCK TABLES;如果用到...

weixin_36164428的博客 591

MySQL5.7 设置主从同步

MySQL5.7 设置主从同步

qq_32733527的博客 1659

mysql 设置同步写_mysql数据库设置主从同步

mysql主从同步是目前使用比较广泛的数据库架构,技术比较成熟,配置也不负责,特别是对于负载比较大的网站,主从同步能够有效缓解数据库读写的压力mysql主从同步的机制mysql主从同步是在mysql主从复制基础上实现的,通过设置在master mysql上的binlog(使其处于打开状态),slave mysql上通过一个I/O线程从master mysql上读取binlog,然后传输到slave...

weixin_35649605的博客 281
上一篇: 转 JavaMail发送中文邮件中主题乱码的解决方法
下一篇: 转 master to master replication
eyejava
博客等级 码龄20年 11粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值