背景:目前公司用的天翼雲服務器,我在雲服務器上安裝了一個mysql5.7,服務器申請下來以前用的是公司的實體服務器,如今想把雲服務器上的mysql作主數據庫,公司實體數據庫作從數據庫。mysql
參考資料:https://blog.51cto.com/mihuge/1269398sql
備註說明:這兩個服務器用的都是window server 2008 r2,實體服務器用的是花生殼的內網穿透。數據庫
ip:雲服務器:140.149.12.202(我亂寫了一個); 本地實體服務器內網穿透後的路徑:2a123445z1.qicp.vip:41023(花生殼自動分配的端口)服務器
一:主數據庫配置:ide
找到my.ini文件,若是找不到,須要查看隱藏文件:工具
打開文件夾選項:測試
選中‘顯示隱藏的文件、文件夾和驅動器’3d
配置文件的路徑爲:C:/programData/MySQL/MySQL/MySQL Server 5.7/my.ini(實在找不到能夠在地址欄數據%ProgramData%,而後按回車)server
在mysqld節點下面設置:blog
server-id=1
log-bin=mysql-bin
binlog-do-db=xxxx(這裏寫你須要同步的數據庫的名字)
binlog-ignore-db = mysql(這裏寫不須要同步的數據庫的名字)
保存並重啓mysql服務。
建立新用戶slave,密碼slave,不建議使用root
mysql>grant replication slave,reload,super on *.* to slave@2a123445z1.qicp.vip identified by 'slave';
說明:最後的‘slave’是密碼,‘@2a123445z1.qicp.vip’是mysql所在主機的ip,倒數第二個slave是你想建立的用戶名
特別說明:由於我這種狀況是數據外網訪問,因此我又增長了一步,給這個新建立的用戶外網訪問的權限,這個不會的能夠自行百度,後期也會寫mysql容許外網訪問的博客。
mysql>show master status;
#記錄File和Position的數值
2、從數據庫配置:
同理找到mysql的配置文件my.ini
#不須要同步的數據庫名稱,可不寫,若是寫了就要和Master上配置保持一致
replicate-ignore-db = mysql
保存,重啓mysql服務.
登錄數據庫
mysql>change master to master_host='140.149.12.202',master_user='slave',master_password='slave',master_log_file='mysql-bin.000002',master_log_pos=855;
mysql> start slave;
mysql> show slave status\G
其中Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 兩項都爲Yes,說明配置成功.此時改動主庫信息,從庫會自動同步,能夠本身測試下.
這裏要注意幾點
1.在mysql5.1以上版本中是不支持master設置的,若是添加了master設置,數據庫就沒法重啓了.因此建議主庫只須要指定server-id和log-bin便可,這樣配置有一個好處就是你在從服務器配置的時候只要添加同步的數據庫無需在配置主.
2.通常錯誤都是都是File和Position的數值不一致.
3.最好在dos下使用命令配置,最好不要使用一些圖形的工具,如Navicat之類的工具.
再次感謝:https://blog.51cto.com/mihuge/1269398