HƯỚNG DẪN Cài đặt MySQL Master-Slave Replication

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 9/11/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    Bài viết này sẽ giúp bạn thiết lập master-slave replication giữa các máy chủ MySQL. Chúng tôi đang sử dụng MySQL 5.5 trên CentOS 6.3. Tôi hy vọng nó sẽ giúp bạn thiết lập replication.

    Thông tin server sẽ sử dụng:
    Master Server: 192.168.1.10
    Slave Server: 192.168.1.20
    Cơ sở dữ liệu: mydb

    Sử dụng liên kết này để kiểm tra khả năng tương thích giữa các phiên bản khác nhau của MySQL


    1. Cài đặt MySQL Master Server

    Tạo một tài khoản mysql trên máy chủ Master với quyền REPLICATION SLAVE giúp replication client sẽ kết nối đến server.
    Mã:
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'192.168.1.20' IDENTIFIED BY 'secretpassword';
    mysql> FLUSH PRIVILEGES;
    
    Ngăn chặn viết câu lệnh trên tất cả các bảng, vì vậy không có sự thay đổi sau khi thực hiện việc sao lưu.
    Mã:
    mysql> use mydb;
    mysql> FLUSH TABLES WITH READ LOCK;
    mysql> exit;
    
    Chỉnh sửa tập tin cấu hình MySQL và thêm những dòng sau đây sau phần [mysqld].
    Mã:
    vim /etc/my.cnf
    
    Mã:
    [mysqld]
    log-bin=mysql-bin
    binlog-do-db=mydb
    server-id=1
    innodb_flush_log_at_trx_commit=1
    sync_binlog=1
    
    Khởi động lại master mysql server để thay đổi có hiệu lực.
    Mã:
    service mysqld restart
    Kiểm tra tên hiện tại tập tin binary log (File) và giá trị Position sử dụng lệnh sau đây.
    Mã:
    mysql > SHOW MASTER STATUS;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000002 |      107 | mydb         |                  |
    +------------------+----------+--------------+------------------+
    
    
    Các kết quả đầu ra ở trên cho thấy rằng tập tin nhị phân hiện tại đang sử dụng là mysql-bin.000002 và giá trị position là 107. Ghi chú lại các giá trị để sử dụng trên slave server.

    Sao lưu cơ sở dữ liệu và sao chép nó đến slave mysl server.
    Mã:
    mysqldump -u root -p mydb > mydb.sql
    scp mydb.sql 192.168.1.20:/opt/
    
    Sau khi hoàn thành sao lưu loại bỏ READ LOCK từ các bảng, Vì vậy, những thay đổi có thể được thực hiện.
    Mã:
    mysql> UNLOCK TABLES;
    2. Cài đặt MySQL Slave Server
    Chỉnh sửa tập tin cấu hình mysql salve và thêm giá trị sau dưới phần [mysqld].
    Mã:
    vim /etc/my.cnf
    Mã:
    [mysqld]
    server-id=2
    replicate-do-db=mydb
    
    server-id luôn luôn là một giá trị số khác không.

    Khởi động lại mysql slave server.
    Mã:
     /etc/init.d/mysqld restart
    Khôi phục sao lưu cơ sở dữ liệu lấy từ master server:
    Mã:
    mysql -u root -p mydb < /opt/mydb.sql
    Các giá trị tùy chọn cài đặt trên slave server sử dụng lệnh sau đây.
    Mã:
    mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.10',
    -> MASTER_USER='repl_user',
    -> MASTER_PASSWORD='secretpassword',
    -> MASTER_LOG_FILE='mysql-bin.000002',
    -> MASTER_LOG_POS=107;
    
    Cuối cùng khởi động slave server
    Mã:
    mysql> SLAVE START;
    Kiểm tra tình trạng của slave server
    Mã:
    mysql> show slave status G
    Mã:
    
    *************************** 1. row ***************************
                   Slave_IO_State:
                      Master_Host: 192.168.1.15
                      Master_User: repl_user
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000002
              Read_Master_Log_Pos: 107
                   Relay_Log_File: mysqld-relay-bin.000001
                    Relay_Log_Pos: 4
            Relay_Master_Log_File: mysql-bin.000002
                 Slave_IO_Running: No
                Slave_SQL_Running: No
                  Replicate_Do_DB: mydb
              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: 107
                  Relay_Log_Space: 107
                  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: NULL
    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
    1 row in set (0.00 sec)
    mysql>
    
    MySQL Master-slave Replication đã được cấu hình thành công trên hệ thống của bạn và trong chế độ làm việc.
     

Chia sẻ trang này

Đang tải...