å‚考资料:
http://dev.mysql.com/doc/refman/4.1/en/replication-howto.html
http://www.imysql.cn/?q=node/73
http://dev.mysql.com/doc/refman/5.1/zh/replication.html
åŒæ¥æ¦‚念:
– 在数æ®åº“è¿è¡Œçš„状æ€ä¸‹ï¼Œå°†æ•°æ®ä»Žä¸»æœåŠ¡å™¨ï¼Œå¢žé‡çš„æ¬è¿åˆ°ä»ŽæœåŠ¡å™¨ï¼Œå®žçŽ°æ•°æ®å¤‡ä»½ã€åŽ‹åŠ›å‡è¡¡ç‰åŠŸèƒ½ï¼›
– æ•°æ®æ¬è¿æ˜¯ç§»æ¥è¿›è¡Œçš„,在4.1.Xä¸åœ¨ä»ŽæœåŠ¡å™¨å¯åŠ¨æ—¶å’Œæ‰§è¡ŒSQL指令:START SLAVE时从æœåŠ¡å™¨ä»Žä¸»æœåŠ¡å™¨å°†æ•°æ®å¢žé‡è½¬ç§»åˆ°ä»Žæœºï¼›
– 从æœåŠ¡å™¨çš„版本需è¦æ¯”主æœåŠ¡å™¨é«˜ï¼Œæˆ–者相ç‰ï¼›
– 实现原ç†æ˜¯é€šè¿‡ä¸»æœåŠ¡å™¨åœ¨æ•°æ®æ“作时ä¿ç•™äºŒè¿›åˆ¶æ—¥å¿—(log-bin)å®žçŽ°çš„ï¼Œè¿™å°†å¢žåŠ I/Oæ“ä½œï¼Œæ‰€ä»¥å®˜æ–¹æ‰¿è®¤èµ·ç”¨äºŒè¿›åˆ¶å°†å¢žåŠ æœåŠ¡å™¨1%的负载;
æ¥éª¤ï¼š
1)é…置主æœåŠ¡å™¨ï¼š
打开主æœåŠ¡å™¨æ•°æ®åº“é…置文件,一般是/etc/my.cnf
[mysqld]ä¸‹å¢žåŠ ï¼ˆä½ç½®å¾ˆé‡è¦ï¼‰
####################
server-id = 1 #æœåŠ¡å™¨ç¼–å·åœ¨ä¸»/从结构ä¸ï¼Œæ¯ä¸ªæœåŠ¡å™¨çš„ç¼–å·éƒ½éœ€è¦æ˜¯å”¯ä¸€çš„
log-bin #å¼€å¯è®¾ç½®äºŒè¿›åˆ¶æ—¥å¿—,å¯ä»¥é€šè¿‡log-bin=filenameæ¥å®žçŽ°è‡ªå®šä¹‰åå—
set-variable=binlog-ignore-db=mysql #设置那些数æ®åº“å¯ä»¥è¢«è·³è¿‡ä¸åŠ 入日志
set-variable=binlog-do-db=mysql #设置åªè®°å½•é‚£äº›æ•°æ®åº“,没有实验过是å¦å’Œä¸Šæ¡å¯ä»¥é€šç”¨ï¼Œå¦‚æžœè¦è®¾ç½®å¤šä¸ªæ•°æ®åº“å°±é‡å¤å¤šæ¬¡
####################
2)开设主æœåŠ¡å™¨åŒæ¥ç”¨æˆ·
在主æœåŠ¡å™¨ä¸æ‰§è¡ŒSQL:
GRANT SUPER,REPLICATION CLIENT,REPLICATION SLAVE,RELOAD ON *.* TO repl@"%" IDENTIFIED BY ‘repl_pass’;
这里设置了repl这个用户,用户å¯ä»¥é€šè¿‡ä»»æ„(%)地å€è®¿é—®ä¸»æœåŠ¡å™¨ï¼ˆå¯ä»¥è‡ªå·±è®¾ç½®å°±æ›´å®‰å…¨äº†ï¼‰ï¼Œå¯†ç 是repl_pass,还给予这个用户4个æƒé™ï¼Œå…·ä½“æ„æ€å°±è‡ªå·±çœ‹å¸®åŠ©å§ã€‚
3)é…置从æœåŠ¡å™¨ï¼š
打开从æœåŠ¡å™¨æ•°æ®åº“é…置文件,一般是/etc/my.cnf
[mysqld]下增åŠ
server-id = 2 #唯一编å·
master-host = master-host.net #主æœåŠ¡å™¨åœ°å€
master-user = repl #执行åŒæ¥æ“作的主æœåŠ¡å™¨ç”¨æˆ·ï¼Œå°±æ˜¯æ¥éª¤2开设的用户
master-password = repl_pass #上é¢é‚£ä¸ªç”¨æˆ·çš„密ç
replicate-do-db = database1 #需è¦åŒæ¥çš„æ•°æ®åº“
replicate-do-db = database2
4)清楚从æœåŠ¡å™¨æ•°æ®åº“目录ä¸çš„残留文件,一般有master.infoç‰ä¸€äº›ä¹‹å‰åšåŒæ¥å¤±è´¥é—留的文件,如果没åšè¿‡æœ€å¥½ï¼›
5)é‡æ–°å¯åŠ¨ä¸»æœåŠ¡å™¨å’Œä»ŽæœåŠ¡å™¨ï¼Œåœ¨ä»ŽæœåŠ¡å™¨ä¸Šé€šè¿‡è¿œç¨‹æ–¹å¼ç™»é™†ä¸‹ä¸»æœåŠ¡å™¨ï¼ˆshell> mysql -u user -p -P port -h host),如果æˆåŠŸå°±ok了
6)确ä¿ä»ŽæœåŠ¡å™¨ä¸Šè¿˜æ²¡æœ‰é‚£äº›éœ€è¦åŒæ¥çš„æ•°æ®åº“,在从æœåŠ¡å™¨æ‰§è¡ŒSQL:
LOAD DATA FROM MASTER;
这个把从æœåŠ¡å™¨æŒ‡å®šé‚£äº›åº“从主æœåŠ¡å™¨ä¸‹è½½åˆ°ä»Žæœºä¸Šï¼ˆå¥½æ–¹ä¾¿å•Šï¼‰ï¼Œä¸€èˆ¬åœ¨æ—¥å¿—里会有一些出错,以åŽå†åˆ†æžå§ã€‚
7)完æˆï¼Œä»¥åŽæ¯æ¬¡æ‰§è¡ŒSQL:
START SLAVE;
从机都自动åŒæ¥ä¸»æœåŠ¡å™¨ï¼ŒçœŸæ–¹ä¾¿ã€‚