配置Mysql5.0雙機同步

來源:互聯網
上載者:User

https://forum.eviloctal.com/thread-30618-1-1.html

 

平台:Redhat AS4.0  Mysql-max-5.0.16-linux-i686 (原創)
作者:jiang313hua         MSN:jiang313hua@hotmail.com
歡迎大家指出錯誤! 歡迎轉載!
本文經過作者測試過.

要求:
1.首先裝好系統Redhat AS4.0 ;

2.Mysql-max-5.0.16-linux-i686解壓縮不需要編譯,直接安裝就可以:
   shell> groupadd mysql
   shell> useradd -g mysql mysql
   shell> cd /usr/local
   shell> tar zxvf  /data/soft/mysql-max-5.0.16-linux-i686-glibc23.tar.gz
   shell> ln -s mysql-max-5.0.16-linux-i686-glibc23  mysql
   shell> cd mysql
   shell> scripts/mysql_install_db --user=mysql
   shell> chown -R root  .
   shell> chown -R mysql data
   shell> chgrp -R mysql .
   shell> bin/mysqld_safe --user=mysql &
具體的操作在其包裡的INSTALL-BINARY檔案中;

3.如果設定了iptables,請將3306連接埠開啟;

4.兩台伺服器的ip:192.168.1.56
                 192.168.1.57

具體過程:
1. 建立需要同步的使用者和需要同步的資料;登陸到192.168.1.56伺服器的資料庫上:
    shell>mysql -uroot -p123456
    mysql>CREATE DATABASE bak;      //建立資料庫
    mysql>GRANT REPLICATION SLAVE ON *.* TO tongbu@'192.168.1.57' DENTIFIED  BY '123456';     //建立同步的mysql帳號           

                        tongbu,密碼為123456,指定只能從192.168.1.57上使用tongbu登陸,並可同步mysql中任意庫
    mysql>flush privileges;

2. 登陸到192.168.1.57伺服器的資料庫上:
    shell>mysql -uroot -p123456
    mysql>CREATE DATABASE bak;
    mysql>GRANT REPLICATION SLAVE ON *.* TO tongbu@'192.168.1.56' DENTIFIED  BY '123456';
    mysql>flush privileges;

3. 把mysql/support-files下面的mysql設定檔複製到/etc目錄下,
   # cp /usr/local/mysql/support-files/my-large.cnf   /etc/my.cnf
    其中.cnf文檔如下:
     my-small.cnf     記憶體少於或等於64M,只提供很少的的資料庫服務
     my-medium.cnf    記憶體在32M--64M之間而且和其他服務一起使用,例如web
     my-large.cnf     記憶體有512M主要提供資料庫服務
     my-huge.cnf      記憶體有1G到2G,主要提供資料庫服務
  
4. 修改192.168.1.56上的my.cnf檔案,在這裡我們把它命名為1號伺服器
     #  vi /etc/my.cnf         
      在[mysqld]添加一下內容:
       log-bin=mysql-bin
       master-host=192.168.157         
       master-user=tongbu               
       master-password=123456           
       master-port=3306                 
       binlog-do-db=bak                 

   因為mysql預設是作為主伺服器,因此不需要指定 server-id =1 這項

5. 修改192.168.1.57上的my.cnf檔案,在這裡我們把它命名為2號伺服器
   #  vi /etc/my.cnf  ,首先在my.cnf檔案中找到 server-id這一項,然後修改成:
       server-id =2
      在[mysqld]添加一下內容:
      master-host=192.168.1.56
      master-user=tongbu
      master-password=123456
      master-port   =3306
      master-connect-retry=30
      replicate-do-db=bak
      log-bin
      binlog-do-db=bak

    解釋:
     master-host=192.168.1.57 表示本機做1號伺服器時的master為192.168.1.57;
     master-user=username   這裡表示2號伺服器上開放的一個有許可權的使用者,使其可以從1號機器串連到2號機器並進行複製;
     master-password=password 表示授權使用者的密碼;
     master-port=3306  master上MySQL服務Listen3306連接埠;
     master-connect-retry=30  同步間隔時間30秒;
     replicate-do-db=bak   表示同步bak資料庫;
     log-bin               開啟logbin選項以能寫到slave的 I/O線程;
     binlog-do-db=bak    表示別的機器可以同步原生bak資料庫.

  
6. 為兩個資料庫中的bak資料庫建立或者匯入相同的表。

7.  重新啟動Mysql.
   # /usr/local/mysql/support-files/mysql.server restart

8.這一步非常關鍵,致是我在這裡走了很多冤枉路,不知所措!
    登陸到192.168.1.56 資料庫:
    mysql>CHANGE MASTER TO
          MASTER_HOST='192.168.1.57',
         MASTER_USER='tongbu',
         MASTER_PASSWORD='123456'

   登陸到192.168.1.57 資料庫:

        mysql>CHANGE MASTER TO
          MASTER_HOST='192.168.1.56',
          MASTER_USER='tongbu',
          MASTER_PASSWORD='123456'

  在192.168.1.56查看mysql:
  mysql> show processlist;
    +----+-------------+--------------------+------+-------------+------+---------------------------------------------------

--------------------+------------------+
| Id | User        | Host               | db   | Command     | Time | State                                                   

              | Info             |
+----+-------------+--------------------+------+-------------+------+-------------------------------------------------------

----------------+------------------+
|  1 | system user |                    | NULL | Connect     |   71 | Waiting for master to send event                        

              | NULL             |
|  2 | system user |                    | NULL | Connect     | 1150 | Has read all relay log; waiting for the slave I/O

thread to update it | NULL             |
|  3 | root        | localhost          | NULL | Query       |    0 | NULL                                                   

              | show processlist |
|  4 | tongbu   | 192.168.1.57:32787 | NULL | Binlog Dump |   16 | Has sent all binlog to slave; waiting for binlog to be

updated        | NULL             |
+----+-------------+--------------------+------+-------------+------+-------------------------------------------------------

----------------+------------------+
4 rows in set (0.00 sec)

   在192.168.1.57查看mysql:
          mysql> show processlist;
+----+-------------+--------------------+------+-------------+------+-------------------------------------------------------

----------------+------------------+
| Id | User        | Host               | db   | Command     | Time | State                                                   

              | Info             |
+----+-------------+--------------------+------+-------------+------+-------------------------------------------------------

----------------+------------------+
|  1 | system user |                    | NULL | Connect     |   37 | Connecting to master                                    

              | NULL             |
|  2 | system user |                    | NULL | Connect     |   37 | Has read all relay log; waiting for the slave I/O

thread to update it | NULL             |
|  3 | tongbu      | 192.168.1.56:32829 | NULL | Binlog Dump |   33 | Has sent all binlog to slave; waiting for binlog to be

updated        | NULL             |
|  4 | root        | localhost          | NULL | Query       |    0 | NULL                                                   

              | show processlist |
+----+-------------+--------------------+------+-------------+------+-------------------------------------------------------

----------------+------------------+
4 rows in set (0.00 sec)

   如果看到這樣的資訊,說明雙向同步成功了,否則檢查以上步驟!

9.現在可以在bak資料庫中,插入記錄。檢查同步情況!

參考文檔:
         Mysql官方文檔
        《做了篇關於Mysql replication的文檔,歡迎大家錯誤修正....》  http://www.chinaunix.net  作者:雙眼皮的豬

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.