日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql cluster 设置单向复制_mysql5.6做单向主从复制Replication

發布時間:2025/3/20 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql cluster 设置单向复制_mysql5.6做单向主从复制Replication 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原理場景:MySQL從3.23版本開始提供復制功能。指的是將主數據庫的DDL和DML操作通過二進制日志傳到從服務器(也叫從庫),然后在從庫上對這些日志重新執行,

從而使得從庫和主庫的數據保持同步。

優點:如果主庫出現問題,可以快速切換到從庫提供服務;

可以在從庫上執行查詢操作,降低主庫的訪問壓力;

可以在從庫上執行備份,以免備份期間影響主庫的服務;

測試環境:2臺最小化安裝的centos7.2

具體操作:

1.安裝相同版本的mysql

2.主(master)服務器配置

① 在my.cnf中的[mysqld]下新增如下項目:

server_id=200        ?      ?# 設置server_id,一般設置為IP;

binlog-do-db=cnblogs ?          ??# 復制過濾:需要備份的數據庫,輸出binlog(這里我假設值備份cnblogs這個數據庫);

#binlog-do-db=db2           #如果要同步多個,另起一行,再加一條

#binlog-do-db=db3           #同上

binlog-ignore-db=mysql         # 復制過濾:不需要備份的數據庫,不輸出(mysql庫一般不同步);

log-bin=master-bin           # 開啟二進制日志功能,可以隨便取,最好有含義;

binlog_cache_size=1M         ?# 為每個session 分配的內存,在事務過程中用來存儲二進制日志的緩存;

binlog_format=mixed           # 主從復制的格式(mixed,statement,row,默認格式是statement);

expire_logs_days=7           ?# 二進制日志自動刪除/過期的天數。默認值為0,表示不自動刪除;

slave_skip_errors=1062          ?# 跳過主從復制中遇到的所有錯誤或指定類型的錯誤,避免slave端復制中斷。

如:1062錯誤是指一些主鍵重復,1032錯誤是因為主從數據庫數據不一致;

log_bin_trust_function_creators=true    # 如果需要同步函數或者存儲過程;

保存,退出;

補充說明:主從復制格式

(1) 基于語句的復制:在Master上執行的SQL語句,在Slave上執行同樣的語句,MySQL默認采用基于語句的復制,效率比較高,

一旦發現沒法精確復制時,會自動選著基于行的復制;

(2) 基于行的復制:把改變的內容復制到Slave,而不是把命令在Slave上執行一遍。從MySQL5.0開始支持;

(3) 混合類型的復制:默認采用基于語句的復制,一旦發現基于語句的無法精確的復制時,就會采用基于行的復制;

② 重啟數據庫

~]#systemctl restart mysql

③ 重新登入mysql并做相關授權

~]#mysql -uroot -p

mysql>create?user?mysql@'%' identified by 'mysql';

mysql>grant all ?on?*.*?to?mysql@'%';      這里可根據自己的數據庫和權限進行設置;

mysql>grant?replication?slave,?replication?client?on?*.*?to?'mysql'@'158.158.41.201'?identified?by?'mysql';

mysql>flush?privileges;

mysql>show?master?status;

注意:記住上圖藍框標出的兩個數值,因為在配置slave時會用到,每次重新配置都會改變。

3.從(slave)服務器配置

①?在my.cnf中的[mysqld]下新增如下項目:

server_id=201          slave的ip做id;

binlog-do-db=cnblogs      與master相對應(換成自己的需求定義);

binlog-ignore-db=mysql     與master相對應;

#log-bin=slave1-bin       先注釋掉,可以先不加;

binlog_cache_size=1M

binlog_format=mixed

expire_logs_days=7

slave_skip_errors=1062

relay_log=mysql-relay-bin    配置中繼日志;

log_slave_updates=1

read_only=1

保存,退出;

補充說明:

(1)如果Slave為其它Slave的Master時,必須設置bin_log;

(2)log_slave_updates表示slave將復制事件寫進自己的二進制日志;

(3)當設置log_slave_updates時,你可以讓slave扮演其它slave的master;

此時,slave把SQL線程執行的事件寫進行自己的二進制日志(binary log),然后,它的slave可以獲取這些事件并執行它;

② 重啟從服務器mysql

~]#systemctl restart mysql

③ 重新登錄mysql

~]#mysql -uroot -p

mysql> change master to?master_host='158.158.41.200',master_user='mysql',master_password='mysql',

master_port=3306,master_log_file='master-bin.000001',master_log_pos=708,master_connect_retry=30;

上圖藍色標志處就是之前再主上“show master status;”后得到的重要數據,寫進去即可。

④ 開啟主從同步

mysql>start?slave;

⑤ 重看主從狀態

mysql>show?slave?status?\G

一切正常,一切就緒。

4.?測試主從同步

在master上新增cnblogs,查看slave上是否同步新增:

  

結束.

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的mysql cluster 设置单向复制_mysql5.6做单向主从复制Replication的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。