Mysql 5.7.1.0 實現主從複製(master-slave)
開始前 請 保證兩臺主機的 防火牆、防毒軟體 不會阻止兩臺主機的正常通訊 。下面通過6步操作實現主從複製!
1、在主庫上建立用於同步資料的使用者:
mysql>
grant replication slave,File
on *.* to
'user_4_slave'@'192.168.1.%' identified by 'pwd_4_slave';
flush privileges;
說明一下192.168.0.%,這個配置是指明允許連線的slave伺服器的ip,這裡%是萬用字元,表示192.168.0.0-192.168.0.255 的slaver 都可以以user_4_slave使用者登陸主伺服器。
你也可以指定固定Ip 直接把整個ip替換成 % 。
建立的具體資訊可以通過navicat檢視mysql庫的user表。
建立完使用者後務必在slave 所在的主機上連一下master庫測試一下是否能正常連線!!!!以防有坑
2、在A伺服器上,修改主庫的配置資訊 (my.ini或my.cnf)先找到server-id,在此行的下方追加如下資訊:
# Server Id. server-id=1 log-bin=mysql-bin binlog-ignore-db=information_schema #忽略這個庫 binlog-ignore-db=mysql #忽略這個庫 binlog-do-db=world #同步的目標資料庫world
修改完畢 重啟Mysql
3、在B伺服器上,修改從庫配置(my.ini或my.cnf),5.7版本的配置有精簡:
# Server Id.
server-id=2 #不能與A配置相同
log-bin=mysql #這裡不是mysql-bin
修改完畢 重啟Mysql
============配置結束===========================================
下面開始sql設定:
4、在master上執行:show master status; 以獲取File檔名和Postion的數值
show master status; +------------------+----------+--------------+--------------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+--------------------------+-------------------+ | mysql-bin.000004 | 782 | world | information_schema,mysql | | +------------------+----------+--------------+--------------------------+-------------------+
5、指定Slave的Master ,在slave上執行:(sql中的最後一行)
change master to master_host='192.168.1.106'
, master_user='user_4_slave',master_password='pwd_4_slave'
, master_log_file='mysql-bin.000004',master_log_pos=782 ;
6、開始測試:
啟動slave : start slave ;
檢視slave狀態: show slave status;
在master上進行更新world庫中的city表,檢視slave庫表中的資料是否同步即可。
update city set name = 'Kabul0000012' where name like 'Kabul%' ;
SELECT * from city ;
查詢從庫:
SELECT * from city where name like '%Kabu%';
在後續應用中,可以再配置 阿里的 變形蟲 實現程式對資料庫層的透明訪問.