ºìÁªLinuxÃÅ»§
Linux°ïÖú

ÔÚLinuxÉϽ¨Á¢MySQL 5.0¾µÏñ

·¢²¼Ê±¼ä:2008-01-24 11:32:55À´Ô´:ºìÁª×÷Õß:dhwoecv
ʵÏÖMySQL¸ß¿É¿¿ÐÔ·½°¸Óкܶ෽·¨£¬ÆäÖУ¬ÀûÓÃMySQL×Ô´øµÄµÄ¸´Öƹ¦ÄÜÊÇ×î¼òµ¥µÄÒ»ÖÖ¡£MySQLÄÚ²¿¸´Öƹ¦ÄÜÊǽ¨Á¢ÔÚÁ½¸ö»òÁ½¸öÒÔÉÏ·þÎñÆ÷Ö®¼ä£¬Í¨¹ýÉ趨ËüÃÇÖ®¼äµÄÖ÷-´Ó¹ØϵÀ´ÊµÏֵġ£ÆäÖÐÒ»¸ö×÷ΪÖ÷·þÎñÆ÷£¬ÆäËüµÄ×÷Ϊ´Ó·þÎñÆ÷¡£ÅäÖ÷½·¨ÈçÏ£º
µÚÒ»²½£ºÓÃmysql -V²é¿´Ö÷´Ó·þÎñÆ÷°æ±¾ÊÇ·ñÒ»Ö¡£²»Ò»Ö¿ÉÄܵ¼Ö¸´ÖÆʧ°Ü¡£

mysql -V
mysql Ver 14.12 Distrib 5.0.45, for pc-linux-gnu (i686) using readline 5.0

µÚ¶þ²½£ºÔÚÖ÷·þÎñÆ÷ÉϽ¨Á¢ÓÃÓÚ¸´ÖƵÄÕʺš£¸ÃÕË»§±ØÐëÊÚÓèREPLICATION SLAVEȨÏÞ¡£
mysql> GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO repuser@slavehost IDENTIFIED BY 'password';
Èç¹ûÏëÒªÔÚSlaveÉÏÓÐȨÏÞÖ´ÐÐ "LOAD TABLE FROM MASTER" »ò "LOAD DATA FROM MASTER" Óï¾äµÄ»°£¬±ØÐëÊÚÓèÈ«¾ÖµÄ FILE ºÍ SELECT ȨÏÞ£º
mysql>GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO 'repuser@'slave_host' IDENTIFIED BY 'password';
½¨Á¢ÍêÕʺźó£¬ÔÚslave_hostÉÏʹÓÃmysql -h masterhost -urepuser -ppassword²âÊÔÕʺŽ¨Á¢ÊÇ·ñ³É¹¦£»

µÚÈý²½£ºÈ·±£Ö÷·þÎñÆ÷ÉÏmy.cnfÎļþµÄ[mysqld]²¿·Ö°üÀ¨Ò»¸ölog-binÑ¡Ïî¡£¸Ã²¿·Ö»¹Ó¦ÓÐÒ»¸öserver-id=Master_idÑ¡ÏÆäÖÐmaster_id±ØÐëΪ1µ½232-1Ö®¼äµÄÒ»¸öÕýÕûÊýÖµ¡£ÀýÈ磺
[mysqld]
log-bin=mysql-bin
server-id=1
Ò»°ãÇé¿öÄã´ò¿ªmy.cnfºó,ÒѾ­Ä¬ÈÏÊÇÕâÑùµÄÉèÖÃÁË,ÀïÃæÄÚÈÝ¿´ÆðÀ´ÏñÏÂÃæÕâÑù:

# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1

Èç¹ûÕâЩѡÏî²»´æÔÚ,Ìí¼ÓËüÃDz¢ÇÒÖØÆô·þÎñÆ÷.ÔÚbinary logging(¶þ½øÖÆÈÕÖ¾)ûÓÐÆôÓõÄÇé¿öÏÂ,·þÎñÆ÷ÊDz»ÄܳÆΪ¸´ÖÆÖ÷·þÎñÆ÷µÄ¡£
×¢Ò⣺°²×°MySQL-server-community RPMºó£¬ÓеIJ¢Ã»ÓÐ/etc/my.cnfÎļþ¡£µ«ÔÚ/usr/share/mysqlĿ¼Ï£¬ÓÐһЩÅäÖÃÄ£°å£¬±ÈÈçmy-small.cnf, my-large.cnfµÈ£¬¿ÉÒÔ¸ù¾ÝϵͳÐèÇ󣬰ÑÆäÖÐÒ»¸öÄ£°å¿½±´Îª/etc/my.cnf¡£ÔÙ½øÐÐ×Ô¼º¶¨Òå¡£ºÃ¶àÇé¿öÏ£¬ÐèÒªµ÷Õû[mysqld]ÏÂÃæµÄmax_allowed_packetÖµ£¬½«ÆäÉèÖÃΪ16M¡£
µÚËIJ½£º½«Ö÷·þÎñÆ÷ÉϵÄÊý¾Ý¿âÍêÕû¸´ÖƵ½´Ó·þÎñÆ÷ÉÏ¡£¿ÉÒÔʹÓÃmysqldump£¬Ò²¿ÉÒÔʹÓöþ½øÖƱ¸·Ý¡£ÕâÀï½éÉܶþ½øÖƱ¸·ÝµÄ·½·¨¡£

ÔÚÖ÷·þÎñÆ÷ÉÏÖ´ÐÐFLUSH TABLES WITH READ LOCKÓï¾äÀ´Ë¢Ð±í,ͬʱ×èֹд²Ù×÷.£º
mysql> FLUSH TABLES WITH READ LOCK£»
È»ºó¶ÔÖ÷·þÎñÆ÷ÉϵÄÊý¾Ý½øÐпìÕÕ¡£(´Ëʱ²»ÒªÍ˳ömysqlµÄÌáʾ·û,Í˳öµÄ»°¾Í½âËøÁË.пªÒ»¸össh´°¿Ú½øÐÐÏÂÃæËù˵µÄ¹éµµ´ò°ü²Ù×÷)
´´½¨¿ìÕÕ×î¼òµ¥µÄ;¾¶ÊÇʹÓù鵵³ÌÐò¶ÔÖ÷·þÎñÆ÷ÉϵÄÊý¾ÝĿ¼(ȱʡµÄÊÇ/var/lib/mysql)ÖеÄÊý¾Ý¿â½øÐжþ½øÖƱ¸·Ý¡£ÒªÊ¹ÓÃtarÀ´´´½¨°üÀ¨ËùÓÐÊý¾Ý¿âµÄ¹éµµÎļþ£¬½øÈëÖ÷·þÎñÆ÷µÄÊý¾ÝĿ¼£¬È»ºóÖ´ÐÐÃüÁ(×¢ÒâÏÂÃæµÄĿ¼²Ù×÷ÊÇÔÚbashµÄÌáʾ·ûϽøÐÐ,ÕâÀïÓÃshell>À´´ú±í,»¹Òª×¢ÒâÖ´ÐеÄÃüÁîÊÇÔÚÄĄ̈·þÎñÆ÷ÉÏ)
shell> tar -cvf /tmp/mysql-snapshot.tar .
È»ºó½«¹éµµÎļþ¸´ÖƵ½´Ó·þÎñÆ÷µÄ/tmpĿ¼¡£
´´½¨Íê¹éµµÎļþºó£¬¿ÉÒÔ»Ö¸´Ö÷Êý¾Ý¿âµÄд²Ù×÷
mysql> UNLOCK TABLES£»
ÔÚ´Ó·þÎñÆ÷ÉÏ£¬½øÈëÊý¾Ý¿âµÄÊý¾ÝĿ¼(ȱʡµÄÊÇ/var/lib/mysql)£¬²¢Ê¹ÓÃÏÂÊöÃüÁî½âѹËõ¹éµµÎļþ£º
shell> tar -xvf /tmp/mysql-snapshot.tar
µÚÎå²½£º±à¼­´Ó·þÎñÆ÷ÉÏ/etc/my.cnf¡£Ö÷ÒªÐÞ²¹ÈçÏ£º

×¢Ê͵ôlog-bin=mysql-bin
ÐÞ¸Äserver-id£¬Ó¦¸Ã´óÓÚµÈÓÚ2£¬±ÈÈçÉèÖÃΪserver-id=2
ÉèÖÃÖ÷·þÎñÆ÷ÐÅÏ¢
master-host=master_host
master-user=repuser //µÚ¶þ²½½¨Á¢µÄ
master-password=password //µÚ¶þ²½½¨Á¢µÄ
µÚÁù²½£ºÖØÐÂÆô¶¯´ÓÊý¾Ý¿â£¬²¢½øÈëmysqlÃüÁîÐУ¨×¢Ò⣺´ËʱÓû§ÒѾ­ÓëÖ÷Êý¾Ý¿âÏàͬÁË£¬ÒòΪµÚËIJ½£©

mysql > slave start;

µÚÆß²½£º²âÊÔ

¸ü¸ÄÖ÷¿âµÄÄÚÈÝ£¬¿´±¸·Ý¿âÊÇ·ñ¸úןı䡣

˵Ã÷:ÓÉÓÚ´Ó·þÎñÆ÷ÊÇͨ¹ý¶ÁÖ÷·þÎñÆ÷µÄ¶þ½øÖÆÈÕÖ¾À´ÊµÏÖ×ÔÎÒ¸üеÄ,ËùÒÔ¶ÔÓÚ¶ÔÊý¾Ý¿â½øÐÐÐ޸ĵIJÙ×÷¶¼Òª·ÅÔÚÖ÷·þÎñÆ÷ÉÏÖ´ÐÐ,¶ø´Ó·þÎñÆ÷Ö»ÓÃÀ´½øÐвéѯ.(Ò²¾ÍÊÇÖ»¶Á²»Ð´µÄÊý¾Ý¿â²Ù×÷).
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ