由于公司怕数据发生意外,所以需要在另一台windows服务器上进行数据库实时备份操作。从数据库是主数据库的备份,当主数据库变化时从数据库要更新。
我这里用A和B来代表不同服务器上的主从数据库。
配置A主(Master)B從(slave)模式
假設A主機IP:192.168.0.103
B主機IP:192.168.0.105
設置B主機連接A主機的mysql賬號為:backup
密碼為:1234
配置A為Master
1.1在mysql的命令行界面操作,增加一個用戶同步使用的賬號并賦予權限:
GRANT FILE ON *.* TO ‘backup’@'192.168.0.105' IDENTIFIED BY ‘1234’;
GRANTREPLICATION SLAVE ON *.* TO ‘backup’@'192.168.0.105' IDENTIFIED BY ‘1234’;
這裡是賦予B主機的用戶操作權限。
1.2在A增加一個數據庫作為同步數據庫。要與B的數據庫里的表結構和數據完全相同。
1.3修改A的my.ini配置文件,在文件末尾加上
server-id = 1 #Server标识
log-bin=mysql-bin
binlog-do-db=testmysql #指定需要日志的数据库,tsetmysql為這個同步數據庫名字
1.4重啟A主機的mysql數據庫,運行命令show master statuse;如下圖界面:
這里的file名字和position在下面會用到。
配置B為Slave
2.1.首先修改B的my.ini配置文件,在文件末尾加上:
Server_id=2
Log_slave_updates=1 #這句話很重要,缺少它不能及時檢查到Master數據庫的更新
2.2.重啟B主機的mysql數據庫,打開命令行。運行如下命令
CHANGE MASTER TO MASTER_HOST=’192.168.0.103’,//這一行指定了Master主機A的IP
MASTER_USER=’backup’,//用戶名
MASTER_PASSWORD=’1234’,//密碼
MASTER_LOG_FILE=’mysql-bin.000031’,//這個值為上面的Master Status里的File名字,只寫入數據的bin文件。
MASTER_LOG_POS=107;//這個值為上面的Master Status里的position值,指從bin文件的多少行開始寫入。
2.3開啟B主機的Slave模式,運行
START SLAVE;
2.4檢查B主機的Slave狀態,運行
SHOW SLAVE STATUS;
仔細查看結果:Slave_IO_Running的對應值為YES,
Slave_SQL_Running的對應著也為YES。
說明連接正常。
网友评论