1. 程式人生 > >不同服務器的mysql數據庫同步

不同服務器的mysql數據庫同步

mysql 數據庫同步

目標:

A服務器上自建的數據庫同步到B服務器上自建的數據庫。

阿裏雲的RDS數據庫A同步到B服務器上自建的數據庫。


A的數據庫名為:mytest


基礎:linux,會配置my.cnf


開始:


下面稱前者A為主服務器,後者B為從服務器。


  1. 先在A服務器查看:sql語句:show master status;

    得到File,Position 的值。

    ‘mysql-bin.000039‘, ‘1538‘, (這個後面要用到)

  2. 在B服務器,修改:/etc/my.cnf.

    修改前,先停止mysql.


增加這幾句:

server-id = 2
expire_logs_days = 10
max_binlog_size = 100M
replicate-do-db = mytest

replicate-ignore-db = mysql
replicate-ignore-db = information_schema
replicate-ignore-db = preformance_schema
slave-skip-errors=all
#GTID
gtid_mode=on
enforce_gtid_consistency=on
binlog_format=row
log-slave-updates=1


修改後,再重啟mysql.


3.B服務器,進入mysql

mysql>show slave status\G;

查看從服務器狀態。

如有,則停止。

mysql>stop slave;

然後寫這一句:

mysql>change master to master_host=‘*********‘,master_port=3306,master_user=‘******‘,master_password=‘*******‘,master_log_file=‘mysql-bin.000039‘ ,master_log_pos=1538;


master_log_file=‘mysql-bin.000039‘ ,master_log_pos=1538;就是上面A服務器查到的。


在執行這一句時,可能因為之前的slave沒清除,會報錯,


mysql> reset slave all;

即可。


重啟 ,

mysql>start slave;


再查看,

mysql>show slave status\G;

有這三句,就對了!

Slave_IO_State: Waiting for master to send event

Slave_IO_Running:Yes;

Slave_SQL_Runing:Yes;



之後,A服務器中mytest數據庫的更新,都會同步到B服務器。

比如,新建一張表,B服務器刷新後,也看到新建一張表。



網上幾篇文章,比較詳細。也可以參考。再有問題。歡迎加入PHP技術問答群提問。


謝謝閱讀。



主從同步數據庫:

http://blog.csdn.net/chenzenan/article/details/44198053
https://yq.aliyun.com/articles/66087

https://yq.aliyun.com/articles/9044


雙向同步數據庫:

http://blog.csdn.net/chenhongwu666/article/details/54358449


---------- 招募未來大神 -----------------------

如果您有利他之心,樂於幫助他人,樂於分享
如果您遇到php問題,百度且問了其他群之後仍沒得到解答

歡迎加入,PHP技術問答群,QQ群:292626152

教學相長!幫助他人,自己也會得到提升!

為了珍惜每個人的寶貴時間,請大家不要閑聊!

願我們互相幫助,共同進步!

加入時留言暗號,php,ajax,thinkphp,yii...


不同服務器的mysql數據庫同步