Ubuntu Server 12.10 MySQL的主從複製筆記

來源:互聯網
上載者:User

OS:Ubuntu Server 12.10

二台伺服器,A的內網IP為192.168.1.111,B的內網IP為192.168.1.222,A做為master,B做為Slave

1.  配置A的Mysql

(1)  vim /etc/mysql/my.cnf

去掉[mysqld]段中 server_id =1 和log_bin=/var/log/mysql/mysql-bin.log的#注釋

加上  binlog-do-db = s3    s3就是要同步的資料庫的名稱,如果沒有這一行,表示同步所有的資料,另外 binlog_ignore_db = mysql。要表示忽略同步的資料庫名稱為mysql,如果有多個要指定同步或是忽略同步的資料,就配置多行,儲存退出。

(2) 建立一個複製用的賬戶(名稱為repl,允許從遠端連線,密碼為123456):

GRANT REPLICATION SLAVE, RELOAD,SUPER, NO *.* TO repl@'%' IDENTIFIED BY '123456';

FLUSH PRIVILEGES;

(3) 重啟mysql服務,或是直接reboot機器也可以

(4) 進入mysql,然後用 show master status\G  查看二進位日誌的狀態,看到類似以下的結果:
          +------------------+----------+--------------+------------------+
          | File                      | Position  | Binlog_Do_DB | Binlog_Ignore_DB |
          +------------------+----------+--------------+------------------+
          | mysql-bin.000003 |    1376  | s3                  |                          |
          +------------------+----------+--------------+------------------+

2.  配置B的Mysql

      (1) vim /etc/mysql/my.cnf
          去掉[mysqld]段中 server_id =1 和log_bin=/var/log/mysql/mysql-bin.log的#注釋,把server_id改為2,要和master機器的不一樣。並增加以下內容:
          binlog_do_db=s3
          log-slave-updates
          儲存退出
    (2) 重啟mysql服務
    (3) 進入mysql,執行
          CHANGE MASTER TO MASTER_HOST='192.168.1.111', MASTER_USER='repl',Master_Port=3306,MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=1376;
          SLAVE START;
          注意上面的CHANGE語句中,MASTER_LOG_FILE和MASTER_LOG_POS就是上面1.4中提到的show master status命令得到的結果,指定二進位檔案的名稱和開始同步的位置。
    (4) 查看SLAVE狀態:    show slave status\G

*************************** 1. row ***************************
              Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.111
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 1376
              Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 1355
        Relay_Master_Log_File: mysql-bin.000003
            Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
          Replicate_Do_Table:
      Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                  Last_Errno: 0
                  Last_Error:
                Skip_Counter: 0
          Exec_Master_Log_Pos: 1376
              Relay_Log_Space: 1512
              Until_Condition: None
              Until_Log_File:
                Until_Log_Pos: 0
          Master_SSL_Allowed: No
          Master_SSL_CA_File:
          Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
              Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
              Last_SQL_Errno: 0
              Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
            Master_Server_Id: 1

上面的紅色二行如果為YES則表示已經正常串連,可以進行複製了。

相關文章

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.