데이터 베이스 MySQL 튜토리얼 两mysql数据库同步实现异步备份方法_MySQL

两mysql数据库同步实现异步备份方法_MySQL

Jun 01, 2016 pm 01:44 PM
비밀번호 데이터베이스 동기화 섬기는 사람 사용자 이름

bitsCN.com

1.服务器状态
服务器A:192.168.1.1
服务器B:192.168.1.2

2.创建同步用户
主机域A:192.168.1.2  用户名A:sync_a  密码A:aaa
主机域B:192.168.1.1  用户名B:sync_b  密码B:bbb
至少分配以下权限grant replication slave

3.执行flush privileges

4.停止MySQL

5.配置my.cnf(my.ini)

服务器A 服务器B
user = mysql教程
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 user = mysql
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

server-id必须唯一
binlog-do-db和replicate-do-db表示需要同步的数据库教程
binlog-ignore-db和replicate-ignore-db表示不需要同步的数据库
请不要加入以下命令,该命令并不会解决uid跳号的问题,恰恰相反以下两行命令才是导致uid跳号的罪魁祸首
auto_increment_increment = 2
auto_increment_offset = 1

6.重新启动MySQL

7.进入MySQL控制台

服务器A:
show master status G
flush tables with read lock;
服务器B:
show master status G
flush tables with read lock;

同时记录下两台服务器的File和Position,此处假设:

A: File: mysql-bin.000001
  Position: 001
B: File: mysql-bin.000002
  Position: 002

服务器A:
change master to
    -> master_host='192.168.1.2',
    -> master_user='sync_b',
    -> master_password='bbb',
    -> master_log_file='mysql-bin.000002',
    -> master_log_pos=002;
服务器B:
change master to
    -> master_host='192.168.1.1',
    -> master_user='sync_a',
    -> master_password='aaa',
    -> master_log_file='mysql-bin.000001',
    -> master_log_pos=001;

此处填写的数据完全相反

8.执行show processlist G查看是否同步成功

方法二

两台服务器
192.168.1.1(A)
192.168.1.2(B)
先保证这mysql的版本是一致的,参考http://dev.mysql.com/doc/refman/5.1/zh/replication.html#replication-implementation-details,否则复制中的异常情况很折腾人。


1.在两台mysql上创建用户,设置权限
A上添加:

#grant replication slave,replication client,reload,super on *.* to 'sync_user'@'192.168.1.2' identified by '123456' with grant option;//用于B访问

B上:

#grant replication slave,replication client,reload,super on *.* to 'sync_user'@'192.168.1.1' identified by '123456' with grant option;//用于A访问

执行  #flush privileges; 更新数据库使用户生效。

2.在/etc/my.cnf上进行相关配置

A B
server-id         = 1

master-host     =192.168.1.2

master-user     =sync_user

master-pass     =123456

master-port     =3306

master-connect-retry=60

replicate-do-db =db1

replicate-do-db =db2

replicate-ignore-db=mysql  server-id         = 2

master-host     =192.168.1.1

master-user     =sync_user

master-pass     =123456

master-port     =3306

master-connect-retry=60

replicate-do-db =db1

replicate-do-db =db2

replicate-ignore-db=mysql
 
  


注意

1.server_id必须为唯一.

2.如果想要同时同步多个库,添加多行replicate-do-db,每行指定一个数据库。不能使用replicate-do-db=db1,db2的形式

3.replicate-ignore-db:指定不进行同步的数据库。

保存后,重启mysql

#mysqladmin -u root -p shutdown

#mysqld_safe --user=mysql

3.把两台服务器上需要同步的数据库进行拷贝,保证这两台数据库初始状态一致。

4.进行双向同步


双向同步就是把单向同步反过来在做一遍,但一定要注意操作的顺序,这是成功的关键

step1.在A上mysql shell中执行

#show master status;


+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000054 |    35 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

记录下 mysql-bin.000054,和35

step2.在B上执行:

#stop slave;//停止同步

#


CHANGE MASTER TO  MASTER_HOST='192.168.1.1', MASTER_PORT=3306, MASTER_USER='sync_user', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000054', MASTER_LOG_POS=35;

 

#start slave;//开始同步

step3,执行show slave statusG;如显示如下内容,表示同步设置成功。

Slave_IO_State: Waiting for master to send event

 

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

step4:上一步没有问题。则在B上继续执行show master status;


#show master status;


+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000005 |    6854 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

step5:在A上执行


#stop slave;//停止同步

#


CHANGE MASTER TO  MASTER_HOST='192.168.1.2', MASTER_PORT=3306, MASTER_USER='sync_user', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000005', MASTER_LOG_POS=6854;

 


#start slave;//开始同步

 


step6:执行show slave statusG;如显示如下内容,表示同步设置成功。

 

Slave_IO_State: Waiting for master to send event

 

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

如上述没有啥问题。到此双向同步设置完成。


方法三

一、准备服务器
由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,Master的版本肯定不能高于Slave版本。
more.. | less.. | 本文中,我们假设主服务器(以下简称Master)和从服务器(以下简称Slave)的版本都是5.0.27,操作系统是RedHat Linux 9。
假设同步Master的主机名为:master(IP:192.168.1.123),Slave主机名为:slave(IP:192.168.1.124),2个MySQL的basedir目录都是/usr/local/mysql,datadir都是:/var/lib/mysql。
二、设置同步服务器
1、设置同步Master
修改 my.cnf 文件,在
# Replication Master Server (default)
# binary logging is required for replication
添加如下内容:
#log-bin=/var/log/mysql/updatelog
server-id = 1
binlog-do-db=discuz
binlog-ignore-db=mysql
重启MySQL,创建一个MySQL帐号为同步专用
# /usr/local/mysql/bin/mysql -u root -p
mysql> GRANT REPLICATION SLAVE ON *.* TO [email=]'back'@'%'[/email] IDENTIFIED BY 'back';
如果想要在Slave上有权限执行 "LOAD TABLE FROM MASTER" 或 "LOAD DATA FROM MASTER" 语句的话,必须授予全局的 FILE 和 SELECT 权限:
mysql>GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO  [email=]'back'@'%'[/email] IDENTIFIED BY 'back';
mysql> FLUSH PRIVILEGES ;

2、设置同步Slave
修改my.cnf文件,添加
server-id = 2
master-host = 192.168.1.123
master-user = back
master-password = back
master-port = 3306
replicate-ignore-db=mysql
replicate-do-db=discuz

重启MySQL

3、启动同步
在主服务器master MySQL命令符下:
# /usr/local/mysql/bin/mysql -u root -p
mysql> show master status;
显示(当然这个是我机器的情况,你的不可能跟我一样哈,只是个例子):
+------------------+----------+-------------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+-------------------+------------------+
| mysql-bin.000009 | 98 | discuz | mysql |
+------------------+----------+-------------------+------------------+

在从服务器master MySQL命令符下:
# /usr/local/mysql/bin/mysql -u root -p
mysql> slave stop;
mysql> change master to master_host='192.168.1.123', master_user='back', master_password='back', master_log_file='mysql-bin.000009', master_log_pos=98;
mysql> slave start;

用show slave statusG;看一下从服务器的同步情况
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果都是yes,那代表已经在同步
往表里面写点数据测试一下看是否同步成功,如果不成功,绝对不是你的RP问题,再检查一下操作步骤!

4、设置双向同步

修改slave服务器的my.cnf,添加
log-bin=/var/log/mysql/updatelog
binlog-do-db=discuz
binlog-ignore-db=mysql

重启MySQL,创建一个MySQL帐号为同步专用
mysql> GRANT REPLICATION SLAVE ON *.* TO [email=]'back'@'%'[/email] IDENTIFIED BY 'back';
mysql> GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO  [email=]'back'@'%'[/email] IDENTIFIED BY 'back';
mysql> FLUSH PRIVILEGES ;

修改master服务器的my.cnf,添加
master-host = 192.168.1.124
master-user = back
master-password = back
master-port = 3306
replicate-ignore-db=mysql
replicate-do-db=discuz

重启MySQL

在主服务器slave MySQL命令符下:
show master status;
+------------------+----------+-------------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+-------------------+------------------+
| mysql-bin.000013 | 98 | discuz | mysql |
+------------------+----------+-------------------+------------------+

在服务器A MySQL命令符下:
mysql> slave stop;
mysql> change master to master_host='192.168.1.124', master_user='back', master_password='back', master_log_file='mysql-bin.000013', master_log_pos=98;
mysql> slave start;

其实也就是A->B单向同步的反向操作!双向同步,就这么简单啦!


提示:如果修改了主服务器的配置,记得删除从服务器上的master.info文件。否则从服务器使用的还是老配置,可能会导致错误。
-----------------------------------------------------------------------------------
注意:关于要复制多个数据库时,binlog-do-db和replicate-do-db选项的设置,网上很多人说是用半角逗号分隔,经过测试,这样的说法是错误的,MySQL官方文档也明确指出,如果要备份多个数据库,只要重复设置相应选项就可以了。
比如:
binlog-do-db=a
binlog-do-db=b
replicate-do-db=a
replicate-do-db=b

bitsCN.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Windows 11에서 계속하려면 관리자 사용자 이름과 비밀번호를 입력하라는 메시지가 표시되는 문제를 해결하는 방법은 무엇입니까? Windows 11에서 계속하려면 관리자 사용자 이름과 비밀번호를 입력하라는 메시지가 표시되는 문제를 해결하는 방법은 무엇입니까? Apr 11, 2024 am 09:10 AM

Win11 시스템을 사용할 때 관리자 사용자 이름과 비밀번호를 입력하라는 메시지가 표시되는 경우가 있습니다. 이 문서에서는 이 상황을 처리하는 방법에 대해 설명합니다. 방법 1: 1. [Windows 로고]를 클릭한 다음 [Shift+다시 시작]을 눌러 안전 모드로 들어가거나 이 방법으로 안전 모드로 들어갑니다. 시작 메뉴를 클릭하고 설정을 선택합니다. "업데이트 및 보안"을 선택하고 "복구"에서 "지금 다시 시작"을 선택한 후 옵션을 입력하고 - 문제 해결 - 고급 옵션 - 시작 설정 -&mdash를 선택하세요.

휴대폰을 사용하여 라우터 WiFi 비밀번호를 설정하는 방법(휴대폰을 도구로 사용) 휴대폰을 사용하여 라우터 WiFi 비밀번호를 설정하는 방법(휴대폰을 도구로 사용) Apr 24, 2024 pm 06:04 PM

무선 네트워크는 오늘날의 디지털 세계에서 사람들의 삶에 없어서는 안 될 부분이 되었습니다. 그러나 개인 무선 네트워크의 보안을 보호하는 것은 특히 중요합니다. 강력한 비밀번호를 설정하는 것은 다른 사람이 WiFi 네트워크를 해킹할 수 없도록 하는 열쇠입니다. 네트워크 보안을 보장하기 위해 이 기사에서는 휴대폰을 사용하여 라우터 WiFi 비밀번호를 변경하는 방법을 자세히 소개합니다. 1. 공유기 관리 페이지 열기 - 모바일 브라우저에서 공유기 관리 페이지를 열고 공유기의 기본 IP 주소를 입력하세요. 2. 관리자 사용자 이름과 비밀번호를 입력하세요. - 액세스 권한을 얻으려면 로그인 페이지에 올바른 관리자 사용자 이름과 비밀번호를 입력하세요. 3. 무선 설정 페이지로 이동합니다. 라우터 관리 페이지에서 무선 설정 페이지를 찾아 클릭하여 들어갑니다. 4. 현재 Wi-Fi 찾기

휴대폰에서 Wi-Fi 비밀번호 변경 튜토리얼(간단한 조작) 휴대폰에서 Wi-Fi 비밀번호 변경 튜토리얼(간단한 조작) Apr 26, 2024 pm 06:25 PM

인터넷의 급속한 발전과 함께 무선 네트워크는 우리 삶에 없어서는 안 될 필수 요소가 되었습니다. 하지만 개인정보 보호와 네트워크 보안을 위해서는 Wi-Fi 비밀번호를 정기적으로 변경하는 것이 매우 중요합니다. 홈 네트워크 보안을 더욱 잘 보호할 수 있도록 이 문서에서는 휴대폰을 사용하여 WiFi 비밀번호를 변경하는 방법에 대한 자세한 튜토리얼을 소개합니다. 1. Wi-Fi 비밀번호의 중요성을 이해하세요. Wi-Fi 비밀번호는 개인정보와 네트워크 보안을 보호하는 첫 번째 방어선입니다. 인터넷 시대에 그 중요성을 이해하면 비밀번호를 정기적으로 변경해야 하는 이유를 더 잘 이해할 수 있습니다. 2. 휴대폰이 Wi-Fi에 연결되어 있는지 확인하세요. 먼저 Wi-Fi 비밀번호를 변경하기 전에 비밀번호를 변경하려는 Wi-Fi 네트워크에 휴대폰이 연결되어 있는지 확인하세요. 3. 휴대폰의 설정 메뉴를 열고 휴대폰의 설정 메뉴로 들어갑니다.

PHP를 사용한 IP 프록시 서버 구축을 위한 모범 사례 가이드 PHP를 사용한 IP 프록시 서버 구축을 위한 모범 사례 가이드 Mar 11, 2024 am 08:36 AM

네트워크 데이터 전송에서 IP 프록시 서버는 사용자가 실제 IP 주소를 숨기고 개인정보를 보호하며 액세스 속도를 향상시키는 데 도움을 주는 중요한 역할을 합니다. 이 기사에서는 PHP를 사용하여 IP 프록시 서버를 구축하는 방법에 대한 모범 사례 가이드를 소개하고 구체적인 코드 예제를 제공합니다. IP 프록시 서버란 무엇입니까? IP 프록시 서버는 사용자와 대상 서버 사이에 위치한 중간 서버로서 사용자와 대상 서버 사이의 전송 스테이션 역할을 하며 사용자의 요청과 응답을 전달합니다. IP 프록시 서버를 사용하여

잘못된 비밀번호입니다. BitLocker 경고에 주의하세요. 잘못된 비밀번호입니다. BitLocker 경고에 주의하세요. Mar 26, 2024 am 09:41 AM

이 문서에서는 잘못된 비밀번호 문제를 해결하는 방법, 특히 BitLocker 경고를 처리할 때 주의해야 할 필요성에 대해 설명합니다. 이 경고는 드라이브 잠금을 해제하기 위해 BitLocker에 잘못된 암호를 여러 번 입력한 경우 발생합니다. 일반적으로 이 경고는 시스템에 잘못된 로그인 시도를 제한하는 정책이 있기 때문에 발생합니다(일반적으로 3번의 로그인 시도가 허용됨). 이 경우 사용자는 적절한 경고 메시지를 받게 됩니다. 전체 경고 메시지는 다음과 같습니다. 입력한 비밀번호가 올바르지 않습니다. 계속해서 잘못된 비밀번호를 입력하면 계정이 잠길 수 있습니다. 이는 데이터 보안을 보호하기 위한 것입니다. 계정을 잠금 해제해야 하는 경우 BitLocker 복구 키를 사용해야 합니다. 비밀번호가 올바르지 않습니다. 컴퓨터에 로그인할 때 나타나는 BitLocker 경고에 주의하세요.

Dnsmasq를 DHCP 릴레이 서버로 구성하는 방법 Dnsmasq를 DHCP 릴레이 서버로 구성하는 방법 Mar 21, 2024 am 08:50 AM

DHCP 릴레이의 역할은 두 서버가 서로 다른 서브넷에 있더라도 수신된 DHCP 패킷을 네트워크의 다른 DHCP 서버로 전달하는 것입니다. DHCP 릴레이를 사용하면 네트워크 센터에 중앙 집중식 DHCP 서버를 배포하고 이를 사용하여 모든 네트워크 서브넷/VLAN에 IP 주소를 동적으로 할당할 수 있습니다. Dnsmasq는 네트워크에서 동적 호스트 구성을 관리하는 데 도움이 되도록 DHCP 릴레이 서버로 구성할 수 있는 일반적으로 사용되는 DNS 및 DHCP 프로토콜 서버입니다. 이 기사에서는 dnsmasq를 DHCP 릴레이 서버로 구성하는 방법을 보여줍니다. 내용 항목: 네트워크 토폴로지 중앙 집중식 DHCP 서버의 DHCP 릴레이 D에서 고정 IP 주소 구성

모든 Wi-Fi 비밀번호를 잠금 해제할 수 있는 소프트웨어의 이름은 무엇입니까(한 번의 클릭으로 연결된 Wi-Fi 비밀번호를 얻으려면 권장되는 모바일 소프트웨어) 모든 Wi-Fi 비밀번호를 잠금 해제할 수 있는 소프트웨어의 이름은 무엇입니까(한 번의 클릭으로 연결된 Wi-Fi 비밀번호를 얻으려면 권장되는 모바일 소프트웨어) Apr 02, 2024 pm 06:46 PM

무선 네트워크는 현대 사회에서 사람들의 삶의 필수적인 부분이 되었습니다. 또는 WiFi 목록에 저장된 비밀번호를 확인해야 하는데 때로는 WiFi 비밀번호를 잊어버릴 때도 있습니다. 이 문제를 해결하기 위해 모바일 소프트웨어가 등장했습니다. 이 마법의 도구를 쉽게 익힐 수 있도록 이 기사에서는 모든 WiFi 비밀번호를 빠르게 잠금 해제하는 데 도움이 되는 소프트웨어를 소개합니다. 1. 강력한 WiFi 비밀번호 잠금해제 도구 - WiFi 비밀번호 잠금해제의 놀라운 세계를 탐험해 보세요. 2. 간단하고 사용하기 쉬운 인터페이스 디자인 - 편리하고 빠른 작동 방법 3. 여러 장치 지원 - 다양한 장치의 요구 사항 충족 4. 자동 업데이트 - 5. 고속 WiFi 연결 - 여러 장치의 동시 연결 요구에 쉽게 대처

win10 컴퓨터 시동 암호를 잊어버린 경우 시스템에 들어가는 방법_win10 컴퓨터 시동 암호를 잊어버린 경우 수행할 작업 win10 컴퓨터 시동 암호를 잊어버린 경우 시스템에 들어가는 방법_win10 컴퓨터 시동 암호를 잊어버린 경우 수행할 작업 Mar 28, 2024 pm 02:35 PM

1. Xiaobai의 원클릭 시스템 재설치 도구를 다운로드하여 다른 컴퓨터에 설치하고, 빈 USB 디스크를 삽입하여 USB 부팅 디스크를 생성하려면 다음을 참조하십시오. 2. 변경해야 하는 컴퓨터에 USB 부팅 디스크를 삽입합니다. 비밀번호를 입력하고 시작 단축키를 누르세요. 일반적으로 시작 단축키는 F12, F8, F9, F10, ESC 중 하나입니다. 그런 다음 시작 인터페이스가 나타나면 U 디스크 옵션을 선택하고 Enter를 눌러 들어갑니다. 3. [1]을 선택하여 win10x64PE를 시작하고 Enter를 눌러 확인합니다. 4. 바탕 화면에서 비밀번호 수정 도구를 선택하고 두 번 클릭하여 엽니다. 5. 그러면 계정 이름 목록이 나타나면 비밀번호를 변경해야 하는 계정을 선택하고 엽니다. 6. 아래 비밀번호 변경 명령을 클릭하고 새 비밀번호를 두 번 입력한 후 확인을 클릭하여 변경 사항을 저장합니다. 7. 마지막으로 USB 플래시 드라이브를 분리하고 컴퓨터를 다시 시작하면 정상입니다.

See all articles