簡介:主數據庫(master):版本:5.7.20
從數據庫(slave):版本:5.6
主服務器:負責增刪改
從服務器:負責讀
1.准備工作:
在兩台服務器上安裝好mysql,創建一個pro數據庫.
2.master主服務器的配置
1) 修改配置文件my.cnf,命令如下:
[root@ecs-43d4 bin]# vim /etc/my.cnf
進入文件后:按'a'進入編輯模式,在mysqld中添加如下內容:
server-id=1
log_bin=master-bin
log_bin_index=master-bin.index
binlog_do_db=pro
按esc鍵,:qw 保存
#備注:
#server-id 服務器唯一標識。
#log_bin 啟動MySQL二進制日志,即數據同步語句,從數據庫會一條一條的執行這些語句。
#binlog_do_db 指定記錄需要復制的數據庫名,如果復制多個數據庫,重復設置這個選項即可。
#binlog_ignore_db 指定不記錄二進制日志的數據庫,即不需要復制的數據庫名,如果有多個數據庫,重復設置這個選項即可。
#其中需要注意的是,binlog_do_db和binlog_ignore_db為互斥選項,一般只需要一個即可。
2)在主服務器上創建從服務器的用戶和權限
#進入mysql數據庫,命令如下:
/usr/local/mysql/mysql-5.7.20-linux-glibc2.12-x86_64/bin/mysql -uroot -p (mysql -uroot -p)
#創建從數據庫的root用戶和權限
grant replication slave on *.* to 'root'@'從服務器的ip' identified by '服務器的密碼 ' ;
exit;
退出,如下圖:
3)重啟MySQL
service mysqld restart
4)查看主服務器狀態
show master status;
注:記住master-bin.000005 154 后面會用到
3.slave從服務器的配置
1) 配置文件my.cnf的修改
[root@ecs-43d4 bin]# vim /etc/my.cnf
進入文件后:按'a'進入編輯模式,在mysqld中添加如下內容:
#在[mysqld]中添加:
server-id=2
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
#replicate-do-db=test
#備注:
#server-id 服務器唯一標識,如果有多個從服務器,每個服務器的server-id不能重復,跟IP一樣是唯一標識,如果你沒設置server-id或者設置為0,則從服務器不會連接到主服務器。
#relay-log 啟動MySQL二進制日志,可以用來做數據備份和崩潰恢復,或主服務器掛掉了,將此從服務器作為其他從服務器的主服務器。
#replicate-do-db 指定同步的數據庫,如果復制多個數據庫,重復設置這個選項即可。若在master端不指定binlog-do-db,則在slave端可用replication-do-db來過濾。
#replicate-ignore-db 不需要同步的數據庫,如果有多個數據庫,重復設置這個選項即可。
#其中需要注意的是,replicate-do-db和replicate-ignore-db為互斥選項,一般只需要一個即可。
2)重啟MySQL
[root@ecs-39e2 ~]# mysql -uroot -p
3)在從服務器上連接master主服務器
change master to master_host='從服務器的ip',master_port=3306,master_user='root',master_password='從服務器的密碼',master_log_file='master-bin.000005',master_log_pos=154;
4).啟動slave同步數據
mysql> start slave;
5)查看slave信息
mysql> show slave status\G;
如圖:兩個yes是成功
可以自己進行測試,主數據庫新建個表,看看從數據庫是否也有
參考文章: