1. 程式人生 > >Mysql 主從復制 及 一些要註意的特殊設置

Mysql 主從復制 及 一些要註意的特殊設置

數據庫 配置文件 主從復制 主從模式

0.準備


A.安裝數據庫: 主從mysql數據庫 (mysql server)都安裝好:

版本上,mysql 允許 低版本master 配 高版本slave

https://dev.mysql.com/doc/refman/5.7/en/replication-compatibility.html

當然版本一致是最好了。


B.表同步和數據同步:在從數據庫(slave),對 主數據庫(master)的表進行數據同步和結構同步(如果只主從復制特定表格,則只針對特定表格同步就行,之後會講如何配置)

用個navicat一類的工具可以很輕松地做 數據同步和結構同步


1.配置主從模式:


可以參照這位大神的文章:


itwork 的BLOG

原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。

http://369369.blog.51cto.com/319630/790921



2.一些小細節:

配置文件怎麽找:

windows: 以5.7為例,配置文件位置為:ProgramData\MySQL\MySQL Server 5.7\my.ini

ubuntu: vi /etc/mysql/my.cnf


mysql如何重啟:

Ubuntu: /etc/init.d/mysql restart

windows: 可以從任務管理器服務裏,找到mysql,或者用cmd:"net stop mysql57" "net start mysql57"


如果僅僅同步幾個table:

slave數據庫配置裏,使用replicate-do-table 配置,有幾個table寫幾條:

replicate-do-table=db_name.table_name

replicate-do-table=db_name.table_name

修改後記得重啟mysql

請註意:db_name 和 table_name 都是 slave數據庫本地的db和table名字,不要用master的名字!!

(卡了我好久都沒發現錯誤。。。雙方已經聯通,然而表的修改監控被filter掉了。。)


如果master數據庫的名字 和 slave的不一樣:

比如master 叫 db123 , slave的叫 db456。

slave數據庫配置裏,使用replicate-rewrite-db 配置:

replicate-rewrite-db=db123->db456

做一個簡單的名字重寫就好。

修改後記得重啟mysql。


如果你是VMWare虛擬機做為slave:

編輯slave的另一配置文件,

vi /etc/mysql/mysql.conf.d/mysqld.cnf

將 “bind-address = 127.0.0.1 ” 這一行 註釋掉


如何debug:

a.多查看 server Logs(如果在用 mysql workbench, 點擊management,在“instance”欄下找到 server Logs), 裏面會提示很多 warning 和 errors,根據錯誤搜索答案。

b. mysql 官方教學,一步一步查,一些常用指令就可以找到問題所在:

https://dev.mysql.com/doc/refman/5.7/en/replication-problems.html



3.資料參考:

這是mysql配置文件的配置項手冊:

https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html


本文出自 “10259463” 博客,請務必保留此出處http://10269463.blog.51cto.com/10259463/1932063

Mysql 主從復制 及 一些要註意的特殊設置