1. 程式人生 > >Linux下Mysql主從複製(從庫是MariaDB)

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