사이트 내 전체검색
PHP
MySQL replication
로빈아빠
https://cmd.kr/php/155 URL이 복사되었습니다.

본문

1. 마스터와 슬래이브에 최신 MySQL을 설지한다. 동일 버전으로 설치하라.
(아마 거의 되어 있을것이다)

2. 마스터에서 replication을 위한 사용자를 추가한다
mysql> grant file on *.* to repli@"%" identified by "패스워드" ;
repli대신 자신이 원하는 아이디 사용해도 된다.

3. 마스터의 mysql을 shutdown한다.
[root@www ] mysqladmin -uroot -p shutdown

4. 마스터의 MySQL DB내용을 그대로 슬래이브로 복사한다.
mysql을 설치할 때 어디 설치하느냐에 따라 다른데 나는 /var/lib/mysql밑에 데이터들이 쌓인다.
tar cvfp mysql_db.tar /var/lib/mysql/* 하면 그대로 압축될것이다.

5. 슬래이브에서 마스터로 ftp를 해서 아까 만든 mysql_db.tar를 가지고 온다
가져 와서는 /var/lib/mysql 아래에 풀어주면 된다.

6. 마스터의 /etc/my.cnf파일을 손본다
[mysqld]
log-bin
server-id=1

7. 슬래이브의 /etc/my.cnf파일을 손본다
[mysqld]
master-host=211.57.173.XXX
master-user=repli
master-password=XXXXXXX
master-port=3306
server-id=2

보면 알겠지만 replic는 아까 grant를 줄때 만든 아이디이다.
그리고 master-port는 mysql이 사용하는 포트 3306을 그대로 쓴다.
(nmap localhost 해보면 mysql포트가 나온다)

8. 마스터와 슬래이브의 MySQL을 재가동한다.

물론 이후에 잘 되는지 점검하는것이 있는데

마스터에서는 mysql>show master status 라고 해보면
mysql> show master status;
*************************** 1. row ***************************
File: www-bin.001
Position: 12476
Binlog_do_db:
Binlog_ignore_db:
1 row in set (0.00 sec)

슬래이브에서는 mysql> show slave status
mysql> show slave status;
*************************** 1. row ***************************
Master_Host: 211.57.173.XXX
Master_User: repli
Master_Port: 3306
Connect_retry: 60
Master_Log_File: www-bin.001
Read_Master_Log_Pos: 12476
Relay_Log_File: king-relay-bin.001
Relay_Log_Pos: 12514
Relay_Master_Log_File: www-bin.001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_do_db:
Replicate_ignore_db:
Last_errno: 0
Last_error:
Skip_counter: 0
Exec_master_log_pos: 12476
Relay_log_space: 12518
1 row in set (0.00 sec)

등으로 나온다. 그러면 정상적으로 동작하는것이다.
위에서 12476 이라는 포지션 숫자가 보이는가? 이게 똑같이 나와야 한다.




 출처 : phpschool.com 최종우님
http://www.phpschool.com/bbs2/inc_view.html?id=8050&code=tnt2

출처 : http://qdata.co.kr/bo/bbs/board.php?bo_table=myt&wr_id=43

댓글목록

등록된 댓글이 없습니다.

PHP
871 (2/18P)

Search

Copyright © Cmd 명령어 3.142.156.25