windows下mysql双向同步备份实现方法 (windows)

教程大全 2025-07-08 04:42:34 浏览

1.1 环境搭建

准备两台Windows NT 主机,分别安装好iKey server windows 版本,确定版本无误,确保mysql服务正常启动,确保两台主机处于同一个局域网中,确定好哪台做为主、备机器,假设A为主机,B为备机,假设A主机IP地址为:192.168.1.101,B主机IP地址为192.168.1.102

1.2 创建同步帐户

分别在A、B节点上登陆mysql 数据库,创建同步帐户并赋予同步权限,如下:

A节点操作:

运行cmd, cd进入iKEY版本安装目录下的iKEY\mysql\bin下,然后执行mysql –uRoot –p123456 登陆mysql数据库执行:

mysql>GRANT REPLICATION SLAVE ON *.* TO “yw[j1] “@”192.168.1.10[j2] 2” IDENTIFIED BY ‘ym[j3] ‘;

mysql>flush privileges;

B节点操作步骤如上,权限赋予如下:

mysql>GRANT REPLICATION SLAVE ON *.* TO “yw[j4] “@”192.168.1.10[j5] 1” IDENTIFIED BY ‘ym[j6] ‘;

mysql>flush privileges;

执行以上操作后,运行net stop mysql, 分别停止两节点数据库.

1.3 配置数据同步选项

1.3.1 A主机操作

安装好的iKEY Server windows 版本后,会在安装目录下的iKEY\mysql\backup文件夹下生成一个my_master.cnf配置文件,在A主机上将my_master.cnf 文件复制到安装目录下的iKEY\mysql\bin文件夹下,并重命名为my.cnf,重命名之前请先备份原有my.cnf文件,以下介绍my.cnf做的修改之处:

log-bin=mysql-bin #同步事件的日志记录文件

binlog-do-db=ikey_db #提供数据同步服务的数据库日志

binlog-do-db=ikey_log #提供数据同步服务的数据库日志

server-id=1

master-host=192.168.1.102 #主机B的IP地址

master-user=ym #同步帐户

master-password=ym #同步帐户密码

master-port=3306 #端口,主机的MYSQL端口

master-connect-retry=60 #重试间隔60秒

replicate-do-db=ikey_db #同步的数据库

replicate-do-db=ikey_log #同步的数据库

1.3.2 B主机操作

安装好的iKEY Server windows 版本后,会在安装目录下的iKEY\mysql\backup文件夹下生成一个my_slave.cnf配置文件,在B备机上将my_slave.cnf 文件复制到安装目录下的iKEY\mysql\bin文件夹下,并重命名为my.cnf,重命名之前请先备份原有my.cnf文件,修改之处同A主机,不同配置在于以下:

server-id=2

master-host=192.168.1.101 #主机A的地址

以上需要注意的地方是,要定义master-host的主机IP地址,请根据实际情况进行修改。

请确保以上同步用户、主机IP、和同步帐户密码与所设配置相同.

1.3.3 验证数据同步

当以上配置完毕后,分别重新启动主机A和备机B数据库,运行net start mysql,

查看同步配置情况,登陆mysql 数据库。

在A节点上查看Master 信息

mysql> show master status;

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

| mysql-bin.000001 | 98 | ikey_db,ikey_log | |

1 row in set (0.00 sec)

windows下mysql双向同步备份实现方法

在B节点上查看Slave信息:

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.1.101

Master_User: ym

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 98

Relay_Log_File: testBBB-relay-bin.000002

Relay_Log_Pos: 235

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB: ikey_db,ikey_log

通过在B节点上查看同步状态,我们可以清楚的看到所设置的同步配置信息以及当前同步状态。

同样可以在B节点上查看master 信息以及在A节点上查看slave 信息。

添加数据在A主机上,同时测试B备机上数据是否同步,以及反向测试。

1.4 同步维护

当需要更改节点IP 时,Mysql 同步配置也需要进行相应修改,在更改节点IP之前,我们先做如下操作:

分别在A、B节点上执行mysql> stop slave; 停止当前同步状态。

假如此时A 节点IP 改为192.168.1.103,需要做如下操作:

1.4.1 A节点:

mysql> show master status;

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

| mysql-bin.000002 | 118 | ikey_db,ikey_log | |

1 row in set (0.00 sec)

1.4.2 B节点:

更改B–àA方向同步的帐户权限

mysql>show grants for[emailprotected](原A节点IP);

查看到原赋予从192.168.1.101 连接的权限,此时我们删除此同步帐户,并重新赋予192.168.1.103 连接的权限,如下:

mysql>drop user[emailprotected];

mysql>flush privileges;

mysql>grant replication slave on *.* to[emailprotected]identified by ‘ym’;

mysql>flush privileges;

然后修改A-àB方向同步配置项:

mysql>CHANGE MASTER TO

-> MASTER_HOST=’192.168.1.103′, # Master 服务器 地址

-> MASTER_USER=’ym’,

->MASTER_PASSWORD=’ym’, -> ->MASTER_LOG_FILE=’mysql-bin.000002′, # 刚才我们记录A节点数据库要执行复制的日志文件。

-> MASTER_LOG_POS=118; #刚才记录的A节点数据库要复制的日志文件位置。

Query OK, 0 rows affected (0.02 sec)

同时需要查看此时B节点的Master信息,同步LOG日志及POS位置

mysql> show master status;

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

| mysql-bin.000003 | 98 | ikey_db,ikey_log | |

1 row in set (0.00 sec)

同时请修改B节点mysql主配置文件中

master-host=192.168.1.103 #主机A的IP地址

1.4.3 接着A节点:

修改B-àA方向同步配置项:

mysql>CHANGE MASTER TO

->MASTER_LOG_FILE=’mysql-bin.000003′, # 刚才我们记录B节点数据库要执行复制的日志文件。

-> MASTER_LOG_POS=98; #刚才记录的B节点数据库要复制的日志文件位置。

Query OK, 0 rows affected (0.02 sec)

然后针对A、B节点启动同步状态,分别运行start slave; 然后查看同步状态,确保在每台机器上查看show slave status;得出

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

即处于正常同步状态。

以上是针对单节点IP修改所做的操作,如果A、B节点IP 都需要修改,参考以上配置进行操作,最好先针对单个节点IP 进行修改,并确保单向同步没有问题后,再进行第二个节点IP修改以及配置。

[j1]执行同步权限的用户

[j2]主机B的IP地址

[j3]同步帐户密码

[j4]执行同步权限的用户

[j5]主机A的IP地址

[j6]同步帐户密码

第一步: 在A数据库的my.ini中添加

复制代码 代码如下:

server-id=1

log-bin=C:\mysqlback #同步事件的日志记录文件

binlog-do-db=test1 #提供数据同步服务的数据库

binlog-do-db=test2 #提供数据同步服务的数据库

binlog-do-db=test3 #提供数据同步服务的数据库

master-host=192.168.0.102 #主机B的地址

master-user=use102 #主机B提供应B的用户,该用户中需要包括数据库test1 test12test3的权限

master-password=usepwd102 #访问密码

master-port=3306 #端口,主机的MYSQL端口

master-connect-retry=60 #重试间隔60秒

replicate-do-db=test1 #同步的数据库

replicate-do-db=test2 #同步的数据库

replicate-do-db=test3 #同步的数据库

第二步:

在B数据库的my.ini中添加

复制代码 代码如下:

server-id=2

log-bin=C:\mysqlback #同步事件的日志记录文件

binlog-do-db=test1 #提供数据同步服务的数据库

binlog-do-db=test2 #提供数据同步服务的数据库

binlog-do-db=test3 #提供数据同步服务的数据库

master-host=192.168.0.101 #主机B的地址

master-user=use101 #主机A提供给A的用户,该用户中需要包括数据库test1 test12test3的权限

master-password=usepwd101 #访问密码

master-port=3306 #端口,主机的MYSQL端口

master-connect-retry=60 #重试间隔60秒

replicate-do-db=test1 #同步的数据库

replicate-do-db=test2 #同步的数据库

replicate-do-db=test3 #同步的数据库

第三步:

将A的mysql数据的权限给B

mysql>GRANT FILE ON *.* TO ‘use101’@’192.168.0.102’IDENTIFIEDBY ‘pwd101’;

将B的Mysql数据的权限给B操作同上。

第四步:

重启AB数据库,后:

B机器:

mysql>slave start;

查看同步配置情况

A机器:

mysql>show master status\G;

B机器:

mysql>show slave status\G;

假如A与B数据库没有同步,检查mysql安装目录下的.err文件。

如果slave日志中报错信息如下:

060807 11:40:17 [ERROR] While trying to obtain the list of slaves from the master ‘xxx.xxx.xxx:3306’ user ‘rep’ got the following error: ‘Access denied. You need the REPLICATION SLAVE privilegefor This operation’在master上,执行以下语句查看权限:

mysql>SHOW GRANT FOR ‘use101’@’192.168.0.102’\G *************************** 1. row *************************** Grants for[emailprotected]: GRANT Select REPLICATION SLAVE ON *.* TO ‘rep’@’192.168.0.102’IDENTIFIED BY PASSWORD ‘xxx’已经授予了 REPLICAION SLAVE 权限了,怎么还会报这个错呢?

通过查看手册和源码,才知道slave需要执行一个语句来更新slave列表:

SHOW SLAVE HOSTS;而执行这个语句则需要 REPLICAITON CLIENT 权限,因此才会报错。因此,只要重新给 帐号加上 REPLICATION CLIENT 权限就可以了。

grant selectreplication slaveREPLICAION CLIENT on *.* to ‘use101’@’192.168.0.102’identified by ‘pwd101’;


mysql数据库定时备份 怎么实现 您会吗

研究下mysqldump命令行,然后写bat文件,最后把bat放到服务的任务计划里定时执行。 先cd到你的mysql安装目录的bin文件夹下然后执行mysqldump -u wcnc -p smgp_apps_wcnc > ------------------------------------------------------------------mysql导出整个数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名

如何让定时备份mysql数据库

第一种:新建批处理文件,里面输入以下代码:netstopmysqlxcopyC:\ProgramFiles\MySQL\MySQLServer5.0\data\piaoyi\*.*D:\db_backup\%date:~0,10%\/ynetstartmysql 第二种:mysqldump备份成sql文件==============假想环境:MySQL安装位置:C:\MySQL论坛数据库名称为:bbsMySQLroot密码数据库备份目的地:D:\db_backup\脚本:@echooffsetYmd=%date:~,4%%date:~5,2%%date:~8,2%C:\MySQL\bin\mysqldump--opt-uroot--password=bbs>D:\db_backup\bbs_%Ymd%@echoon第三种:利用WinRAR对MySQL数据库进行定时备份。 对于MySQL的备份,好的方法是直接备份MySQL数据库的Data目录。 下面提供了一个利用WinRAR来对Data目录进行定时备份的方法。 首先当然要把WinRAR安装到计算机上。 将下面的命令写入到一个文本文件里,如:\ProgramFiles\WinRAR\-ag-k-r-sD:\db_backup\mysql_:\ProgramFiles\MySQL\MySQLServer5.0\data\netstartmysqlwinrar参数解释:a:添加文件到压缩文件-ag:使用当前日期生成压缩文件名-k:锁定压缩文件-r:递归子目录-s:创建固实压缩文件

mysql数据库如何备份?

目前 MySQL 支持的免费备份工具有:mysqldump、mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。 MyISAM 表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用。 Innodb 所有的表都保存在同一个数据文件 ibdata1 中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐