主MySQL設置
1、編輯主MYSQL 服務器的MySQL配置文件my.cnf,在[mysqld]下面添加以下參數:
log-bin=mysql-bin //開啟MYSQL二進制日志
server-id=1 //服務器ID不能重復
binlog-do-db=dzx2 //需要做主從備份的數據庫名字
expire-logs-days = 7 //只保留7天的二進制日志,以防磁盤被日志占滿
2、在 A 服務器添加一個用於主從復制的帳號:
登陸mysql命令行,執行
GRANT REPLICATION SLAVE ON *.* TO ‘帳號’@’從服務器IP’ IDENTIFIED BY ‘密碼’;
例如:帳號是 rep,密碼是 123,IP 是 192.168.1.3,則執行代碼為
GRANT REPLICATION SLAVE ON *.* TO ‘rep’@’192.168.1.3′ IDENTIFIED BY ’123′;
3、重啟MySQL ,讓配置生效
關閉論壇訪問,復制數據庫備份到從庫服務器
1、登錄論壇後台,“全局—站點信息”,關閉論壇訪問
2、登錄MySQL命令行,例如:mysql -uroot –p
3、在主MySQL服務器上執行命令,把數據庫設置成只讀狀態:
FLUSH TABLES WITH READ LOCK;
4、執行命令,並且記下file及position的值:
show master status;
5、備份需要做主從備份的數據庫,用導出成SQL或者直接復制數據庫文件方式都可以
6、回到MYSQL命令行窗口,解封數據庫只讀狀態,執行:
UNLOCK TABLES;
7、登錄論壇後台,“全局—站點信息”,開放論壇訪問
8、將剛才備份出來的數據復制到從庫服務器
從MySQL服務器設置
1、編輯 從MYSQL服務器的MySQL配置文件my.cnf,在[mysqld]下面添加以下參數:
server-id=2 //服務器ID不能重復
master-port=3306 //主庫的端口
replicate-do-db=dzx2 //需要做復制的數據庫名
replicate-ignore-table=dzx2.pre_common_session //自動跳過的表,session表沒必要做復制
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396 //自動跳過的錯誤代碼,以防復制出錯被中斷
2、將主庫上備份的數據庫恢復到從庫
3、重啟從庫MYSQL
4、登錄從庫的MySQL命令行,執行:
change master to master_host=’192.168.1.2′, master_user=’rep’, master_password=’123′, master_log_file=’file的值’, master_log_pos=position的值;
//設置連接信息,file及position的值是之前記錄下來,position的值沒有單引號,其他的值要單引號
5、執行:
start slave; //啟動從庫連接
6、查看從庫狀態:
show slave statusG; //查看連接情況,是不是兩個YES,兩個YES為成功
7、編輯從MYSQL服務器的MySQL配置文件my.cnf,在[mysqld]下面添加以下參數:
master-host=192.168.1.2 //主庫A的IP
master-user=rep //剛才在主庫創建的帳號
master-password=123 //密碼