mysql複製是基於主服務器的二進制日誌中跟蹤全部對數據庫的增刪改的,要開啓主服務器的二進制日誌mysql
本地環境介紹:sql
主mysql: win 用的是Xampp集成環境,mysql5.6。ip地址:192.168.1.141shell
從mysql: vm 下centos7,mysql5.6。ip地址:192.168.136.128數據庫
主從mysql最好版本差很少,從服務器至少與主服務器版本相同或更高centos
1、主服務器配置服務器
一、my.ini:ide
用編輯打開my.ini,個人在D:\xampp\mysql\bin下centos7
#啓用二進制spa
log-bin=mysql-bin #master id server-id=1 #指定哪一個數據庫同步開啓二進制 binlog-do-db=lk_shiyong
注意:日誌
這個參數是指定哪一個數據庫不開啓二進制
binlog-ignore-db=database-name
若是是多個數據話的,要寫多個binlog-do-db和binlog-ignore-db,數據庫名稱都是小寫的~
2.爲從服務器添加帳戶並配置權限
在主服務器上,必須爲從服務器建立一個用戶來鏈接主服務器,並設置replication slave權限。
cmd 下切換到D:\xampp\mysql\bin下,本地沒有密碼,直接mysql
mysql
>use mysql; >select host,username from user; >grant replication slave on *.* to 'replication'@'%' identified by '123456'; >select * from user where user = 'replication' \G;
三、把咱們要同步的數據庫備份一下,導入到從數據庫服務器中
先備份lk_shiyong這個數據,再拷貝到從數據庫服務器。
兩邊的數據庫名稱都是lk_shiyong
這樣兩邊的原始數據就是同樣的呢
四、查看主服務器狀態並記錄日誌和位置參數,後面的從服務器要用到
>show master status\G;
記錄:
file:mysql-bin.000002
position:120
2、從服務器
一、my.cnf
vi /etc/my.cnf #添加服務ID server-id=2
二、設置主服務器的地址,用戶名和密碼
# mysql -u root -p
>change master to master_host = '192.168.1.141', master_user = 'replication', master_password = '123456', master_log_file = 'mysql-bin.000002', master_log_pos = 120; >start slave;
這裏的master_log_file和master_log_pos 就是咱們以前記錄的值。
三、查看狀態
>show slave status \G;
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
說明從服務器正在等待主服務器製做數據!
好吧,咱們在主服務下的一張表中,添加數據後,再到從服務器查看一下,會顯示剛剛插入的數據~