>  기사  >  데이터 베이스  >  MySQL에서 마스터-슬레이브 데이터베이스를 구축하는 방법에 대한 자세한 설명

MySQL에서 마스터-슬레이브 데이터베이스를 구축하는 방법에 대한 자세한 설명

黄舟
黄舟원래의
2017-09-14 11:21:162205검색

이 글에서는 주로 MySQL 마스터-슬레이브 데이터베이스 구축 방법을 소개하고, MySQL 마스터-슬레이브 데이터베이스 구축의 원리, 단계, 구체적인 운영 기법을 좀 더 자세히 분석합니다. 필요한 친구들이 참고할 수 있습니다

이 글에서는 MySQL 마스터에 대해 설명합니다. -예제 방법을 사용한 슬레이브 데이터베이스 구축. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

마스터-슬레이브 서버는 mysql 실시간 데이터 동기화 백업을 위한 매우 좋은 솔루션입니다. 이제 모든 대규모, 중간 및 소규모 네트워크는 mysql 데이터베이스 마스터를 사용합니다. 웹 사이트 데이터베이스를 비동기적으로 동기화하는 슬레이브 서버 기능 백업이 완료되었습니다. 마스터-슬레이브 서버 구성 단계를 소개하겠습니다.

Mysql 마스터-슬레이브 복제에는 최소한 두 개의 Mysql 서비스가 필요합니다. 물론 Mysql 서비스는 여러 서버에 배포되거나 하나의 서버에서 여러 서비스를 시작할 수 있습니다.

(1) 먼저 마스터 서버와 슬레이브 서버의 Mysql 버전이 동일한지 확인하세요.

(2) 마스터 서버에서 슬레이브 데이터베이스에 대한 계정을 설정하고 REPLICATION SLAVE를 사용하세요. REPLICATION SLAVE赋予权限,如:


mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'192.168.0.99' IDENTIFIED BY
'123456';
Query OK, 0 rows affected (0.13 sec)

(3)修改主数据库的配置文件my.cnf,开启BINLOG,并设置server-id的值,修改之后必须重启Mysql服务


[mysqld]
log-bin = /home/mysql/log/mysql-bin.log
server-id=1

(4)之后可以得到主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复


mysql> show master statusG;
*************************** 1. row ***************************
File: mysql-bin.000003
Position: 243
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)

(5)好了,现在可以停止主数据的的更新操作,并生成主数据库的备份,我们可以通过mysqldump导出数据到从数据库,当然了,你也可以直接用cp命令将数据文件复制到从数据库去

注意在导出数据之前先对主数据库进行READ LOCK,以保证数据的一致性


mysql> flush tables with read lock;
Query OK, 0 rows affected (0.19 sec)

之后是mysqldump


mysqldump -h127.0.0.1 -p3306 -uroot -p test > /home/chenyz/test.sql

最好在主数据库备份完毕,恢复写操作


mysql> unlock tables;
Query OK, 0 rows affected (0.28 sec)

(6)将刚才主数据备份的test.sql复制到从数据库,进行导入

(7)接着修改从数据库的my.cnf,增加server-id参数,指定复制使用的用户,主数据库服务器的ip,端口以及开始执行复制日志的文件和位置


[mysqld]
server-id=2
log_bin = /var/log/mysql/mysql-bin.log
master-host =192.168.1.100
master-user=test
master-pass=123456
master-port =3306
master-connect-retry=60
replicate-do-db =test

(8)在从服务器上,启动slave进程


mysql> start slave;

(9)在从服务器进行show salve status


mysql> SHOW SLAVE STATUSG
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: localhost
Master_User: root
Master_Port: 3306
Connect_Retry: 3
Master_Log_File: mysql-bin.003
Read_Master_Log_Pos: 79
Relay_Log_File: gbichot-relay-bin.003
Relay_Log_Pos: 548
Relay_Master_Log_File: mysql-bin .003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

(3) 기본 데이터베이스의 my.cnf 구성 파일을 수정하고 BINLOG를 열고 server-id 값을 설정한 후 Mysql 서비스를 다시 시작해야 합니다

🎜🎜rrreee🎜(4) 이후에는 메인 서버 이름과 오프셋의 현재 바이너리 로그를 얻을 수 있습니다. 이 작업의 목적은 데이터베이스에서 시작한 후 이 지점의 데이터를 복구하는 것입니다🎜🎜🎜🎜rrreee🎜( 5) 이제 메인 데이터의 업데이트 작업을 중지하고 메인 데이터를 생성할 수 있습니다. 데이터베이스 백업을 위해 mysqldump를 통해 데이터를 슬레이브 데이터베이스로 내보낼 수 있습니다. 물론 cp 명령을 사용하여 직접 복사할 수도 있습니다. 데이터 파일을 슬레이브 데이터베이스에 추가합니다🎜🎜데이터를 내보내기 전에 마스터 데이터베이스를 READ LOCK하여 데이터 일관성🎜🎜🎜🎜rrreee🎜 뒤에 mysqldump🎜🎜🎜🎜rrreee🎜이 뒤따르는지 확인하세요. 쓰기를 복원하는 것이 가장 좋습니다. 메인 데이터베이스 백업이 완료된 후 작업🎜🎜🎜🎜rrreee🎜(6) 방금 백업한 test.sql을 메인 데이터에서 슬레이브 데이터베이스로 복사하고 import 🎜🎜(7) 그런 다음 슬레이브 데이터베이스의 my.cnf를 수정하고, server-id 매개변수를 추가하고, 복제에 사용할 사용자, 메인 데이터베이스 서버의 IP와 포트, 복제 로그가 실행되기 시작하는 파일과 위치를 지정합니다. 🎜🎜🎜🎜 rrreee🎜(8) 슬레이브 서버에서 , 슬레이브 프로세스를 시작합니다🎜🎜🎜🎜rrreee🎜(9) 슬레이브 서버에서 show salve status 확인을 수행합니다🎜🎜🎜🎜rrreee🎜(10) 좋습니다. 이제 우리에서 몇 가지 업데이트 작업을 수행할 수 있습니다. 메인서버에 업데이트 후 슬레이브서버에 업데이트가 되었는지 확인해보세요🎜

위 내용은 MySQL에서 마스터-슬레이브 데이터베이스를 구축하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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