數據庫是應用系統的核心,為了保證數據庫的安全采用主從熱備是很常見的方法,也就是主數據庫DDL、DML都將被同步到從數據庫。
一、????? 實驗環境
操作系統:windowsserver 2008 R2
數據庫:mysql-advanced-5.6.21-winx64
二、 準備工作
1、????????把需要同步的數據庫實例從主數據庫備份出來,然后手動導入從數據庫,以保證數據庫同步的時候主從數據庫是一致的。
2、????????配置主數據庫所在操作系統的防火墻,開放數據庫訪問端口,默認端口3306。
三、 修改主數據庫master
C:\soft\mysql-advanced-5.6.21-winx64\my.ini
如果ini文件名是my-default.ini修改為my.ini。
[mysqld]
#[必須]服務器唯一ID,默認是1,一般取IP最后一段
server_id = 41
#[必須]啟用二進制日志
log_bin=mysql-bin
#需要備份的數據庫名 多個庫以逗號分隔
binlog-do-db =test
#若涉及及同步函數或者存儲過程需要配置,否則主備會產生異常不能同步
log_bin_trust_function_creators=TRUE
四、修改從數據庫slave
C:\soft\mysql-advanced-5.6.21-winx64\my.ini
如果ini文件名是my-default.ini修改為my.ini。
[mysqld]
#[必須]服務器唯一ID,默認是1,一般取IP最后一段
server_id = 44
五、?? 重啟數據庫
停止服務
net stop mysql
啟動服務
net start mysql
六、 在主數據庫建立賬號并授權slave
grant replication slave on *.* to 'tantuls'@'%' identified by '123456';
一般不用root帳號,“%”表示所有客戶端都可能連,只要帳號,密碼正確,此處可用具體客戶端IP代替,如192.168.1.44,加強安全。
檢測授權結果
select * from user where host='%' and user='tantuls'\G;
如果Repl_slave_priv項為Y,表示授權成功。
七、登錄主數據庫查看master狀態
show master status;
注:執行完此步驟后不要再操作主服務器
MYSQL
,防止主服務器狀態值變化
八、 配置從數據庫slave
mysql> change master to
master_host='192.168.1.41',
master_user='tantuls',
master_password='123456',
master_log_file='mysql-bin.000004',
master_log_pos=326;
如果slave處于啟動狀態,則先執行stopslave命令停止,再執行changemaster to…配置slave,最后執行start slave啟動slave。
九、檢測從數據庫復制功能狀態
show master status;
其中下面兩項都必須為yes。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
十、 驗證
在主數據庫test數據庫實例中創建一個數據庫表tt,在從數據庫執行查看對應數據庫實例下是否新建了一個名為tt的表。
主庫建表:
從庫檢測表是同步過來: