mysql5.5建立主從復制(set up master-slave replication) 1.注意事項: (1)主從服務器版本要一致 (2)要修改root密碼,切不可用初始密碼 ( 此與主從復制無關,為數據庫安全考慮耳 ); www.2cto.com 2.配置主服務器master: [sql] [mysqld] log-bin=mysql-bin //必須啟用二進制日志 server-id=1 //必須是服務器唯一id,默認是0, 重啟主服務器 3.配置從服務器slave: [plain] [mysqld] #log-bin=mysql-bin // 從服務器的二進制日志非必須啟用,然而如果該從服務器要作為其他服務器的主服務器時則需要啟用;若啟用二進制日志,可以用作數據備份和功能恢復 server-id=2 //必須服務器唯一ID, 默認是0,不要與服務器一樣 www.2cto.com 重啟從服務器 4.在主服務器給從服務器分配一個具有replication slave權限的帳戶 [sql] mysql> CREATE USER 'repl'@'192.168.1.103' IDENTIFIED BY 'slavepass'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.103'; 5.獲得復制主服務器二進制日志的坐標( Obtaining the Replication Master Binary Log Coordinates ) (1).在主服務器命令行啟用一個session連接mysql,刷新所有的表和並阻止寫入語句: [sql] mysql> FLUSH TABLES WITH READ LOCK; ( 要解鎖退出該會話即可 ) (2).在主服務器通過命令行新開一個session連接mysql,使用語句SHOW MASTE STATUS判斷出當前二進制日志的文件名和位置: [sql] mysql > SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 107 | | | +------------------+----------+--------------+------------------+ 記下二進制文件名:mysql-bin.000003和位置107 6.使用mysqldump創建一個數據快照 (1).確定主服務器讀寫被鎖,見上一步5.1 (2).使用mysqldump導出所有需要復制的數據庫或者選擇其中一個,例如: [sql] shell> mysqldump --all-databases --lock-all-tables >dbdump.db (3).解鎖之前鎖定的表: [sql] mysql> UNLOCK TABLES; (另:關閉連接也可以解鎖) 7.交直一步創建的快照導入從服務器: (1).把dbdump.db(即上一步從主服務器導出的文件)拷貝到從服務器 (2).連接從服務器並執行stop slave; [sql] mysql > stop slave; (3).導入文件 [sql] mysql > create databases 'dataname'; mysql > use 'dataname'; mysql > source dbdump.db; 8.配置復制的主服務器的坐標 [sql] mysql> CHANGE MASTER TO -> MASTER_HOST='192.168.1.103', -> MASTER_USER='repl', -> MASTER_PASSWORD='slavepass', -> MASTER_LOG_FILE='mysql-bin.000003', 注:執行該語句之前必須確保沒有slave線程運行,否則報錯 9.啟動slave線程: [sql] mysql > start slave; 10.在主服務器中插入一條數據,查看從服務器是否有了.