MySQL主從介紹,準備工做,配置主, 配置從,測試主從同步

MySQL主從介紹:

主要應用的場景
1.數據備份
2.作爲讀的庫使用,減輕主庫的壓力
html

 

準備工做:

將主從都啓動mysql服務,linux-01做爲主mysql,linux-02做爲從mysqlmysql

 

配置主:

在主上操做
修改my.cnf,增長server-id=132和log_bin=aminglinux1linux

修改完配置文件後,啓動或者重啓mysqld服務
/etc/inir.d/mysqld restartsql

 

查看mysql目錄下會生成aminglinux1.index索引文件與aminglinux1.000001日誌文件,還會生成更多的日誌文件,這個文件是主從的根本,很是重要,沒有這個文件主從是沒有辦法完成。數據庫

 

把mysql庫備份並恢復成aming庫,做爲測試數據,如下是操做
mysql -uroot進入數據庫          =沒有設置密碼的數據庫能夠直接回車進入
mysqldump -uroot mysql > /tmp/blog.sql,備份數據庫
mysql -uroot -e 「create database aming」 建立數據庫vim


mysql -uroot aming < /tmp/blog.sql 恢復數據庫bash

 

建立用做同步數據的用戶
grant replication slave on . to 'repl'@192.168.137.129 identified by 'password'; 指定用記權限與IP服務器


flush tables with read lock; 鎖一下表,是爲了避免讓它再寫入數據,狀態先保持在這裏ide

 

 

將主同步的數據庫都備份後再拷貝到從機器去測試

 

 

配置從:

查看my.cnf,配置server-id=130,要求和主不同
vim /etc/my.cnf

修改完配置文件後,啓動或者重啓mysqld服務
/etc/init.d/mysqld restart
把主上aming庫同步到從上
scp 192.168.209.132:/tmp/*.sql /tmp/ 將主的庫拷貝到從的/tmp/

若是沒有找到 mysql 命令或者 mysqldump 命令,說明沒有添加到path變量裏面,作兩個別名就Ok了。

進入從數據庫
mysql -uroot
建立庫aming

恢復數據

 

mysql -uroot    =進入數據庫
stop slave;    =關閉slave

change master to master_host='', master_user='repl', master_password='', master_log_file='', master_log_pos=xx

start slave;     開啓slave

 

show slave status\G                   =查看主從是否成功配置

回到主上執行unlock tables,解鎖主庫的表

這樣主從配置搭建完成。

 

測試主從同步:

幾個配置參數

  • 主服務器上
  • binlog-do-db= //僅同步指定的庫
  • binlog-ignore-db= //忽略指定庫
  • 從服務器上
  • replicate_do_db=  //同步指定的庫
  • replicate_ignore_db=  //忽略指定的庫
  • replicate_do_table= //同步指定表
  • replicate_ignore_table= //忽略同步表
  • replicate_wild_do_table= //範圍模糊同步如aming.%, 支持通配符%
  • replicate_wild_ignore_table=//範圍模糊忽略

注:進行從服務器的配置時,儘可能使用replicate_wild_do_table和replicate_wild_ignore_table兩個參數

 

 

  • 主上 mysql -uroot aming
  • select count(*) from db;
  • truncate table db;
  • 到從上 mysql -uroot aming
  • select count(*) from db;
  • 主上繼續drop table db;
  • 從上查看db表

主服務器:

清空表格wp_users

刪除表格wp_users

從服務器:

 

擴展

遇到主從不能正常同步,提示uuid相同的錯誤。這是由於克隆機器致使。

相關文章
相關標籤/搜索