mysql主從搭建

如今測試的是兩個mysql都是新的,沒數據的。若是master有數據的,將數據庫導出,並導入slave數據庫中,在啓動同步以前,兩邊的數據要一致。mysql



PS: 主從服務器的版本能夠不同,可是從服務器的版本必須高於主服務器的版本。sql




master:192.168.80.24數據庫

slave :192.168.80.45服務器




一、主服務器上進行操做ide


  (1)建立同步用戶並受權測試

       mysql>insert into mysql.user(host,user,password) values("localhost","repl",password("repl"));spa

       mysql>flush privileges;3d

        mysql>grant replication slave on *.* to ‘repl’@‘192.168.80.45' identified by 'repl';日誌


       PS:建立用戶還能夠:CREATE USER 'user'@ 'X.X.X.X' IDENTIFIED BY 'password';server


   (2)修改my.cnf文件,在[mysqld]下添加下面兩行:

      

      log-bin=mysql-bin

      server-id=24

      wKiom1TbFtjwtfVVAAFoOiK8GJs940.jpg

            

             server-id                         #服務器id,通常取ip地址末段

             log-bin=mysql-bin          #啓動二進制日誌  

             而後重啓mysql服務

  (3)登錄mysql查詢主數據庫的狀態

      mysql> show master status;

      記下File以及Position的值,在後面進行從服務器操做的時候須要使用。

二、配置從服務器

  (1)修改從服務器的配置文件/etc/my.cnf,在[mysqld]下面添加:


      server-id=45       肯定這個id沒有被別的mysql服務所使用。

      log-bin=mysql-bin


      而後啓動或者重啓從數據庫

  (2)登陸mysql     

      mysql -uroot -p


  (3)執行同步的sql語句

    mysql>change master to    master_host='192.168.80.24',master_user='repl',master_password='repl',

    master_log_file='mysql-bin.000001',master_log_pos=107;


  (4)執行正確後再執行

     mysql> start slave;

     這樣就啓動了slave同步功能。


  (5)主從同步檢查

     執行以下語句

     mysql>show slave status\G

          wKiom1TbFwiSPtdFAAB5tsF0Kz4605.jpg


     Slave_IO進程以及slave_SQL進程都必須正常運行,在狀態輸出中表現爲:「slave」;不然都是不正確,兩個進程的狀態(如一個值是Yes,另外一個是No則不行)。

相關文章
相關標籤/搜索