Linux下Mysql主從複製(從庫是MariaDB)
排版不易,希望能幫助到大家
一、準備2臺伺服器
ip:120.168.0.1(主)、120.168.0.2(從)
二、配置檔案
1. Linux中的MySQL配置檔案都在/etc/my.cnf(windows中的配置檔案為mysql.ini)
2.主庫
binlog-ignore-db=mysql #不參與主從的資料庫名,不參與主從複製的資料庫名mysql
server-id=1 #伺服器的標識 要和從伺服器不一樣
log-bin=mysql-bin #注意:二進位制日誌必須開啟,因為資料的同步實質上就是其他的MySQL資料庫伺服器將這個資料變更的二進位制日誌在本機上再執行一遍。
replicate-do-db=oa_system #是你需要複製的資料庫名稱,如果有多個就用逗號“,”分開;或者分行寫
3從庫
server-id=2 #伺服器的標識唯一,設定要進行或不要進行主從複製的資料庫名,要和主伺服器不一樣
log-bin=mysql-bin #可開可不開
replicate-do-db=oa_system #是你需要複製的資料庫名稱,如果有多個就用逗號“,”分開;或者分行寫
三、開始構建主從複製
1.主庫
在120.168.0.1中建立一個120.168.0.2主機中可以登入的MySQL使用者
使用者:mysql1 密碼:mysql1
mysql>GRANT REPLICATION SLAVE ON *.* TO‘mysql1’@’120.168.0.2’ IDENTIFIED BY ‘mysql1’;
mysql>FLUSH PRIVILEGES;
#注:下圖中的File是日誌檔案 Position 是開始行數,下面有用到
2.主庫
檢視120.168.0.1中MySQL伺服器二進位制檔名與位置
mysql>SHOW MASTER STATUS;
注意:如果為空則需要重啟MySQL(service mysqld restart),MariaDB的重啟方法為(systemctl restart mariadb.service)
3.從庫
告知二進位制檔名與位置
在120.168.0.2中執行:mysql>change master to master_host='120.168.0.1',master_user='mysql1',master_password='mysql1',master_log_file='mysql-bin.000002',master_log_pos=120;
#這裡的配置就是使用的上面主庫的資訊.還有日誌檔案的資訊
四、測試主從複製
在120.168.0.2中輸入:
mysql>SLAVE START; #開啟複製
mysql>SHOW SLAVE STATUS\G #檢視主從複製是否配置成功 出現如下:
或出現:
Slave_IO_Runing:Yes
Slave_SQL_Running :yes
就說明成功了.然後你在主資料庫的增刪改查,看看從資料庫.應該就會同步執行了.
五、文章來源
每個人都有自己的方式,不同的情景,時間都會有不一樣的結果,我的問題在這兩位作者中得到了解決,大家可以一起參考
https://blog.csdn.net/sc9018181134/article/details/53886533
http://www.cnblogs.com/phpstudy2015-6/p/6485819.html#_label7
mysql高階書籍,下載地址:https://download.csdn.net/download/qq_36103520/10461759