32 MySQL主從

  1. 簡介
    MySQL主從又叫作Replication、AB複製。簡單講就是A和B兩臺機器作主從後,在A上寫數據,另一臺B也會跟着寫數據,二者數據實時同步的
    MySQL主從是基於binlog的,主上須開啓binlog才能進行主從。
    主從過程大體有3個步驟
    1)主將更改操做記錄到binlog裏
    2)從將主的binlog事件(sql語句)同步到從本機上並記錄在relaylog裏
    3)從根據relaylog裏面的sql語句按順序執行
    主上有一個log dump線程,用來和從的I/O線程傳遞binlog
    從上有兩個線程,其中I/O線程用來同步主的binlog並生成relaylog,另一個SQL線程用來把relaylog裏面的sql語句落地mysql

  2. 主從配置
    主上操做
    安裝mysql
    vi /etc/my.cnf,增長server-id=130和log_bin=slx1
    修改完配置文件後,啓動或者重啓mysqld服務(/etc/init.d/mysqld restart)
    重啓後會在/data/mysql/目錄下生成(跟log_bin有關)
    -rw-rw----. 1 mysql mysql 120 4月 11 19:03 slx1.000001
    -rw-rw----. 1 mysql mysql 14 4月 11 19:03 slx1.indexsql

    把mysql庫備份並恢復成slx庫,做爲測試數據
    mysqldump -uroot mysql > /tmp/mysql.sql
    mysql -uroot -e 「create database slx」
    mysql -uroot slx < /tmp/mysql.sql
    建立用做同步數據的用戶
    grant replication slave on . to 'repl'@[slave_ip] identified by 'password';
    flush tables with read lock; 暫時把動做凍結,鎖定
    show master status; 顯示結果
    mysql> show master status;
    +-------------+----------+--------------+------------------+-------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +-------------+----------+--------------+------------------+-------------------+
    | slx1.000001 | 652233 | | | |
    +-------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)服務器

從上操做
安裝mysql
查看my.cnf,配置server-id=132,要求和主不同
修改完配置文件後,啓動或者重啓mysqld服務
把主上aming庫同步到從上
能夠先建立aming庫,而後把主上的/tmp/mysql.sql拷貝到從上,而後導入aming庫
mysql -uroot
stop slave;
change master to master_host='[ip]', master_user='repl', master_password='', master_log_file='[主上的File]', master_log_pos=[主上的position],
start slave;
還要到主上執行 unlock tables 解鎖ide

  1. 配置參數主服務器上binlog-do-db= //僅同步指定的庫binlog-ignore-db= //忽略指定庫從服務器上replicate_do_db=replicate_ignore_db=replicate_do_table=replicate_ignore_table=replicate_wild_do_table= 支持通配符%replicate_wild_ignore_table=
相關文章
相關標籤/搜索