ÈçºÎÉèÖÃMySQLͬ²½(Replication)
×÷ÕߣºÒ¶½ðÈÙ£¨Email: imysql#gmail.com£©£¬À´Ô´£ºhttp://iMySQL.cn£¬×ªÔØÇë×¢Ã÷×÷Õߺͳö´¦£¬²¢ÇÒ²»ÄÜÓÃÓÚÉÌÒµÓÃ;£¬Î¥Õ߱ؾ¿¡£
MySQLÌṩÁËÊý¾Ý¿âµÄͬ²½¹¦ÄÜ£¬Õâ¶ÔÎÒÃÇʵÏÖÊý¾Ý¿âµÄÈßÔÖ¡¢±¸·Ý¡¢»Ö¸´¡¢¸ºÔؾùºâµÈ¶¼ÊÇÓм«´ó°ïÖúµÄ¡£±¾ÎÄÃèÊöÁ˳£¼ûµÄͬ²½ÉèÖ÷½·¨¡£
Ò»¡¢×¼±¸·þÎñÆ÷
ÓÉÓÚMySQL²»Í¬°æ±¾Ö®¼äµÄ(¶þ½øÖÆÈÕÖ¾)binlog¸ñʽ¿ÉÄܻ᲻һÑù£¬Òò´Ë×îºÃµÄ´îÅä×éºÏÊÇMasterµÄMySQL°æ±¾ºÍSlaveµÄ°æ±¾Ïàͬ»òÕ߸üµÍ£¬MasterµÄ°æ±¾¿Ï¶¨²»ÄܸßÓÚSlave°æ±¾¡£
±¾ÎÄÖУ¬ÎÒÃǼÙÉèÖ÷·þÎñÆ÷(ÒÔϼò³ÆMaster)ºÍ´Ó·þÎñÆ÷(ÒÔϼò³ÆSlave)µÄ°æ±¾¶¼ÊÇ5.0.15£¬²Ù×÷ϵͳÊÇLinux Ubuntu 5.0.x¡£
¼ÙÉèͬ²½MasterµÄÖ÷»úÃûΪ£ºrep1£¬SlaveÖ÷»úÃûΪ£ºrep2£¬2¸öMySQLµÄbasedirĿ¼¶¼ÊÇ/usr/local/mysql£¬datadir¶¼ÊÇ£º/usr/local/MySQL/data¡£
¶þ¡¢ÉèÖÃͬ²½·þÎñÆ÷
1¡¢ÉèÖÃͬ²½Master
ÿ¸öͬ²½·þÎñÆ÷¶¼±ØÐëÉ趨һ¸öΨһµÄ±àºÅ£¬·ñÔòͬ²½¾Í²»ÄÜÕý³£ÔËÐÐÁË¡£½ÓÏÂÀ´¿ªÊ¼ÐÞ¸Ä my.cnf£¬Ôö¼ÓÒÔϼ¸ÐУº
server-id = 1
log-bin
set-variable=binlog-ignore-db=MySQL
È»ºóÔÚMasterÉÏÔö¼ÓÒ»¸öÕ˺ÅרÃÅÓÃÓÚͬ²½£¬ÈçÏ£º
MySQL>GRANT REPLICATION SLAVE ON *.* TO rep@rep2 IDENTIFIED BY 'rep';
Èç¹ûÏëÒªÔÚSlaveÉÏÓÐȨÏÞÖ´ÐÐ "LOAD TABLE from MASTER" »ò "LOAD DATA from MASTER" Óï¾äµÄ»°£¬±ØÐëÊÚÓèÈ«¾ÖµÄ FILE ºÍ SELECT ȨÏÞ£º
MySQL>GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO rep@rep2 IDENTIFIED BY 'rep';
µÚÈýÐбíʾ²»¼Ç¼Êý¾Ý¿âMySQLµÄ¸üÐÂÈÕÖ¾£¬Õâ¾Í±ÜÃâÁËMasterÉϵÄȨÏÞÉèÖõȱ»Í¬²½µ½SlaveÉÏ£¬Èç¹û¶ÔÕâ·½ÃæÃ»ÓÐÏÞÖÆ£¬¾Í¿ÉÒÔ²»ÉèÖÃÕâ¸ö²ÎÊý¡£
½ÓÏÂÀ´±¸·ÝMasterÉϵÄÊý¾Ý£¬Ê×ÏÈÖ´ÐÐÈçÏÂSQLÓï¾ä£º
MySQL>FLUSH TABLES WITH READ LOCK;
²»ÒªÍ˳öÕâ¸öÖÕ¶Ë£¬·ñÔòÕâ¸öËø¾Í²»ÉúЧÁË£»½Ó×ŵ¼³öÊý¾Ý£¬¿ÉÒÔÖ±½Ó´ò°üѹËõÊý¾ÝÎļþ£¬Ò²¿ÉÒÔʹÓÃMySQLdump¹¤¾ßÀ´×ö£¬ÍƼöǰÕߵķ½·¨£¬ÕâÑù¸üΪ¿ì½Ý¼ò±ã¡£
root$cd /usr/local/MySQL
root$tar zcf data.tar.gz ./data (ÔÚÕâÀïÒ²¿ÉÄÜÊÇ "var" µÈÆäËüʵ¼Ê´æ·ÅÊý¾ÝÎļþµÄĿ¼£¬¸ù¾ÝʵÇé¶ø¶¨)
È»ºó½«ÕâЩÊý¾Ý¿½±´µ½Slave·þÎñÆ÷ÉÏ£¬½â¿ª£¬ÉèÖúÃÕýÈ·µÄȨÏÞ¼°ÊôÖ÷µÈ£»Ö®ºó£¬Ö´ÐÐ "UNLOCK TABLES" Óï¾äÀ´ÊÍ·ÅËø¡£
2¡¢ÉèÖÃSlave
ÐÞ¸Ämy.cnf£¬Ôö¼ÓÈçϼ¸ÐУº
server-id = 2
master-host = rep1 #Ö÷·þÎñÆ÷Ãû
master-user = rep #ͬ²½ÕË»§Ãû£¬Ä¬ÈÏÊÇtest
master-password = rep #ͬ²½ÕÊ»§ÃÜÂ룬ĬÈÏÊÇ¿Õ
master-
Ïà¹ØÎĵµ£º
ÓÐʱºònginx£¬apache£¬mysql£¬php±àÒëÍêÁËÏë¿´¿´±àÒë²ÎÊý¿ÉÒÔÓÃÒÔÏ·½·¨
nginx±àÒë²ÎÊý£º
#/usr/local/nginx/sbin/nginx -V
CODE:
nginx version: nginx/0.6.32
built by gcc 4.1.2 20071124 (Red Hat 4.1.2-42)
configure arguments: --user=www --group=www --prefix=/usr/local/nginx/ --with-http_stub_status_mo ......
ÍøÉϺܶàдÔÚwindowsÏÂÎÞ·¨ÔØÈëmysqlÀ©Õ¹½â¾ö°ì·¨£¬µ«ÊÇÔÚliunxϵľÍû¼¸¸ö£¬ÒÔÏÂÊÇÔÚliunxϵĽâ¾ö°ì·¨
֨װºóphp²»»á×Ô¶¯°Ñmysql.soÀ©Õ¹¼ÓÉÏÈ¥,Òª
sudo vim /etc/php5/apache2/conf.d/pdo.ini
¼ÓÈëextension=mysql.so¾Í¿ÉÒÔÁË
ÆäʵҲ¿ÉÒÔÔÚ /etc/php5/apache2/php.iniÖмÓÈë
Ò²¿ÉÒÔÔÚ/etc/php5/apache2/conf. ......
1. ʹÓÃGRANTÓï¾äÌí¼Ó£ºÊ×ÏÈÔÚÊý¾Ý¿â±¾»úÉÏÓÃROOTÓû§
µÇ¼MySql£¨ÎÒÊÇÓÃÔ¶³Ì¿ØÖÆlinux·þÎñÆ÷£¬Ï൱ÓÚÔÚ·þÎñÆ÷±¾»úµÇ¼MySqlÁË£©£¬È»ºóÊäÈ룺
mysql>GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
Ìí¼ÓÒ»¸öÓû§admin²¢ÊÚȨͨ¹ý±¾µØ»ú£¨localhost)·ÃÎÊ£¬ÃÜÂë“s ......
use mysql
update user set Password=password('newpassword') where User='root';
flush privileges;
1.ͨ¹ýÐÞ¸ÄMYSQLÊý¾Ý¿âÖÐMYSQL¿âµÄUSER±í
¾ÍÓÃÆÕͨµÄUPDATE¡¢INSERTÓï¾ä¾Í¿ÉÒÔ
2.ÔÚÃüÁîÐÐÖÐʹÓÃÈçÏÂÃüÁî
MYSQLADMIN -u root -p PASSWORD mypasswd
3.¿ÉÒÔÐÞ¸ÄMYSQLÎļþ¼ÐÖеÄMY.INIÎļþ
4.ʹÓÃSET PASSWORDÓï¾ ......
MySQL 5.1.40ÒѾ·¢²¼£¬ÔÚÕâÀïÓÐһЩеÄÌØÐÔ³öÏÖ£¬°üÀ¨MySQL»ùȺ»ùÓÚ´ÅÅ̵ÄÊý¾ÝÖ§³ÖµÈµÈ¡£¡¡¡¡MySQL 5.1.40ÒѾ·¢²¼£¬ÕâÒ»°æ±¾µÄMySQLÓкܶàÐµĹ¦ÄÜÌØÐÔ£¬Ï£ÍûÕâЩÐÂÌØÐÔÄÜÈôó¼Ò½ñºóµÄ¹¤×÷¸üÓÐЧÂÊ¡£MySQLÊÇÏÖÔÚ×îÁ÷ÐÐÒ»¸ö¶àÏ̵߳Ä,½á¹¹»¯²éѯÓïÑÔ(SQL)Êý¾Ý¿â·þÎñÆ÷.¾ø´ó¶àÊýPHPÍøÕ¾µÄÊý¾Ý¿âºǫ́¶¼ÊDzÉÓÃÕâÒ»Êý¾Ý¿â.
¡¡ ......