Mysql 主從配置


  1. 登錄主服務器mysql

  2. 進入mysql,建立一個mysql用戶,用來做爲從服務器鏈接使用sql

    mysql>GRANT REPLICATION SLAVE ON *.* TO ‘test’@’192.168.1.101‘ IDENTIFIED BY ‘123456’;
    數據庫

  3. 修改my.ini文件(windows server 中修改mydefault.ini ,修改完成後更名成爲my.ini)windows

    server-id       = 1
    log-bin          = mysql-bin 服務器

  4. 進入從服務器修改my.ini文件函數

  5. server-id               = 2
    log_bin                 = /var/log/mysql/mysql-bin.log
    master-host     =192.168.1.100
    master-user     =test
    master-pass     =123456
    master-port     =3306
    master-connect-retry=60 
    replicate-do-db =test

    5.  重啓主服務器數據庫及從服務器數據庫性能

    6.  查看從服務器同步狀態
spa

        show slave status\G;日誌

正常狀態orm

        slave_io_running : yes

        slave_sql_running: yes

注意:主服務器的binlog-format模式我用的是STATEMENT,從服務器的binlog-format模式我用的是ROW。

① STATEMENT模式(SBR)

每一條會修改數據的sql語句會記錄到binlog中。優勢是並不須要記錄每一條sql語句和每一行的數據變化,減小了binlog日誌量,節約IO,提升性能。缺點是在某些狀況下會致使master-slave中的數據不一致(如sleep()函數, last_insert_id(),以及user-defined functions(udf)等會出現問題)

② ROW模式(RBR)

不記錄每條sql語句的上下文信息,僅需記錄哪條數據被修改了,修改爲什麼樣了。並且不會出現某些特定狀況下的存儲過程、或function、或trigger的調用和觸發沒法被正確複製的問題。缺點是會產生大量的日誌,尤爲是alter table的時候會讓日誌暴漲。

③ MIXED模式(MBR)

以上兩種模式的混合使用,通常的複製使用STATEMENT模式保存binlog,對於STATEMENT模式沒法複製的操做使用ROW模式保存binlog,MySQL會根據執行的SQL語句選擇日誌保存方式。

相關文章
相關標籤/搜索