準備兩個mysql 放在兩臺服務器上 ,mysql
修改/etc/my.cnfsql
主庫增長數據庫
server-id=1 log-bin=log #指定能夠被複制的數據庫名稱 binlog-do-db=test01
從庫增長服務器
server-id=2 replicate-do-db=test01
建立一個從庫用於鏈接主庫進行復制binlog的遠程帳戶 code
GRANT REPLICATION SLAVE,FILE ON *.* TO '帳戶'@'從庫ip' IDENTIFIED BY '密碼';
在mysql5.5以後 從庫配置文件my.cnf 中對主庫的配置開始不受支持了 server
例如blog
master-host=主庫ip master-user=帳戶 master-password=密碼
這種配置方式啓動時會報錯 , 不能識別master-XXX 的錯誤 ip
須要用下面的方式配置同步
CHANGE MASTER TO MASTER_LOG_FILE='log.000001',MASTER_HOST="主庫ip", MASTER_PORT=3306, MASTER_USER="遠程帳戶", MASTER_PASSWORD="密碼" , MASTER_LOG_POS=823 ;
pos 和log_file 須要在主庫中查詢 在主庫中執行 show master status;ast
配置完成後 start slave; 在從庫中啓動 show slave status\G; 查看狀態
標記紅框位置爲yes 表明成功 此時從數據庫信息已經同步
可能遇到的問題
主從不能同步:
show slave status;報錯:Error xxx dosn't exist
且show slave status\G:
Slave_SQL_Running: NO
Seconds_Behind_Master: NULL
解決方法:
stop slave; set global sql_slave_skip_counter =1 ; start slave;
以後Slave會和Master去同步 主要看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master是否爲0,0就是已經同步了
此時在主庫中插入後從庫自動同步