首先要准備2台機器,分別安裝mysql
我這裡的版本是5.1.73,mysql數據庫安裝請參考:http://www.cnblogs.com/tangyanbo/p/4289753.html
linux系統為centos
機器分別為:
Master: 192.168.1.227
Slave:192.168.1.225
場景:master和slave都是剛創建的數據庫,即數據是一致的場景下
大致步驟如下:
1) 在每個服務器上創建一個復制賬號
2) 配置Master和Slave
3) Slave連接Master開始復制
在master上創建一個賬號slave,密碼slave,並賦予REPLICATION SLAVE權限
mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.225' IDENTIFIED BY 'slave';
# vi /etc/my.cnf
確保mysqld下面有如下配置:
[mysqld] port = 3306 server-id = 1
log_bin = mysql-bin
socket = /tmp/mysql.sock skip-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M binlog_format=ROW log-slave-updates sync_binlog=1 auto_increment_increment=2 auto_increment_offset=1
server_id: 必須配置,且不能與slave的server_id相同
log_bin: 開啟二進制日志
保存並退出,重啟master
service mysqld restart
進入sql控制台,運行命令SHOW MASTER STATUS或者show master status\G
[mysqld] port = 3306 server-id = 2 log_bin = mysql-bin relay_log = mysql-relay-bin log_slave_updates = 1 read_only = 1
server_id: 必須配置,且不能與slave的server_id相同
log_bin: 開啟二進制日志
relay_log配置中繼日志,log_slave_updates表示slave將復制事件寫進自己的二進制日志(後面會看到它的用處)
保存並重啟slave
讓slave連接master
mysql>CHANGE MASTER TO MASTER_HOST='192.168.1.227',MASTER_USER='slave',MASTER_PASSWORD='slave',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=106;
注意紅色部分
MASTER_LOG_FILE對應master的file
MASTER_LOG_POS對應master的Position
運行命令:mysql>show slave status\G
mysql>use test; mysql>create table test1(id int,name varchar(20)); mysql>insert into test1 values(1,'2');
在slave上查看
說明復制成功了。