mysql數據庫主從複製的基本配置方法

1、主從複製的準備mysql

要求主數據庫和從數據庫的版本號一直,好比都是mysql 5.7.x。最後一位能夠不相同,可是前面兩位版本號須要同樣。
主從複製的原理,主數據庫配置二進制日誌文件,將數據庫的變動操做都計入二進制日誌,從數據庫讀取二進制日誌,而後同步到從數據庫中,保證從數據庫與主數據庫數據的一致性。linux

2、主從複製的配置sql

1.配置文件(my.cnf)數據庫

主數據庫:
[mysqld]
server-id=1 # 此處設置服務器的id,通常習慣於把主數據庫設置爲1
log-bin= <二進制日誌文件保存路徑> /mysqlbin # 最好不要與data文件在一個路徑,這裏文件名推薦使用mysqlbin。linux要注意mysql帳戶要有讀寫的權限。
binlog-ignore-db= # 不要進行主從複製的數據庫名。一般mysql數據庫包含了帳號信息,不想也要主從複製。
binlog-do-db= # 須要進行主從複製的數據庫名,這個參數和上面的參數通常只要設置一個,也能夠兩個都使用。
服務器

從數據庫
在配置文件中只需修改
[mysqld]
server-id=2 # 只要是不和主數據庫同樣的id就能夠了。
如下的參數寫在配置文件中也能夠,可是不推薦寫在配置文件中,使用數據庫命令設置更方便一些。
master-host= # 主服務器的地址
master-user= # 用於複製的帳戶,這裏是指主服務器寫帳戶。到這一步尚未新建帳戶,因此能夠先不用寫,等新建完帳戶後再寫。
master-password= # 帳戶密碼,如今也先不用寫,生成帳戶後再寫。
master-port=3306 # 數據庫端口號,通常默認是3306,若是沒修改過不用寫。
日誌

2.命令設置server

主數據庫:
GRANT REPLICATION SLAVE ON . TO 'username'@'hostname' IDENTIFIED BY 'password'; # username 是帳號名,hostname是容許從數據庫的IP地址,若是不限制能夠寫%,password帳號密碼。這些的信息未來能夠寫入從數據庫的配置文件中。
FLUSH PRIVILEGES;
SHOW MASTER STATUS; # 查看主數據庫配置狀態信息。主要記錄:File和Position的值。同步

從數據庫:
CHANGE MASTER TO
MASTER_HOST= <主數據庫服務器地址> , # 若是配置文件中已經寫入,這裏就不須要了。
MASTER_USER= <進行復制的主數據庫的帳號> , # 若是配置文件中已經寫入,這裏就不須要了。
MASTER_LOG_FILE= <主數據庫的logbin文件名> , # 上一步在主數據庫中使用SHOW MASTER STATUS命令查出的File參數值。
MASTER_LOG_POSITION= <主數據庫的logbin文件定位> ; # 上一步在主數據庫中使用SHOW MASTER STATUS命令查出的Position參數值。
START SLAVE; # 啓動主從複製。
SHOW SLAVE STATUS; # 查看從服務器的啓動狀態,重點查看: Slave_IO_Running: Yes,Slave_SQL_Running: Yes兩個參數必須是Yes,若是不是的話就表示配置失敗,須要從新檢查修改配置。
注意,若是須要修改從數據庫配置,須要先執行STOP SLAVE命令結束主從複製,而後進行修改,修改完成後再從新啓動START SLAVE it

以上這些是基本的配置,還有一些參數沒有深刻研究先不寫了,未來用到慢慢完善。io

相關文章
相關標籤/搜索