本文目錄一覽:
安全最重要!MySQL配置主從複製,主主複製
為了保障數據的安全與穩定性,我們常用數據庫的主從複製與主主複製來實現。主從複製為從機實時拷貝一份主機的數據,當主機有數據變化時,從機的數據會跟着變,當從機數據有變化時,主機數據不變;同樣地,主主複製就是,多個主機之間,只要有一個主機的數據變化了,其它主機數據也會跟着變化。
添加以下內容
如果你是使用我之前那種方式啟動的MySQL,那麼你只需要去你相關聯的宿主機的配置文件夾裡面去建立一個 my.cnf 然後寫入上面的類容就好了。
比如:我的啟動命令如下(不應該換行的,這裡為了方便查看,我給它分行了)
那麼我只需要在 /docker/mysql_master/conf 這個目錄下創建 my.cnf 文件就好了。
這個命令是需要在容器裡面執行的
docker重啟mysql會關閉容器,我們需要重啟容器。
確保在主服務器上 skip_networking 選項處於 OFF 關閉狀態, 這是默認值。 如果是啟用的,則從站無法與主站通信,並且複製失敗。
我的命令如下
在從服務器配置連接到主服務器的相關信息 (在容器裡面的mysql執行)
上面代碼的xxxxx你需要換成你的IP,docker 查看容器 IP 的命令如下:
啟動的那個從服務器的線程
測試的話,你可以在主服務器裡面,創建一個數據庫,發現從服務器裡面也有了,就成功了。
如果你還想要一個從服務器,那麼你只需要按照上面配置從服務器再配置一個就行了,新建的從服務器,會自動保存主服務器之前的數據。(測試結果) 如果你上面的主從複製搞定了,那麼這個主主複製就很簡單了。我們把上面的從服務器也改成主服務器
1)、修改上面的從服務器的my.cnf文件,和主服務器的一樣(注意這個server-id不能一樣)然後重啟服務器 2)、在從服務器裡面創建一個複製用戶創建命令一樣(這裡修改一下用戶名可以改為 repl2) 3)、在之前的主服務器裡面運行下面這個代碼
上面主要是教你怎麼搭建一個MySQL集群,但是這裡面還有很多其它的問題。也是我在學習過程中思考的問題,可能有的小夥伴上來看到文章長篇大論的看不下去,只想去實現這樣一直集群功能,所以我就把問題寫在下面了。
1)、MySQL的replication和pxc MySQL的集群方案有replication和pxc兩種,上面是基於replication實現的。
replication: 異步複製,速度快,無法保證數據的一致性。 pxc: 同步複製,速度慢,多個集群之間是事務提交的數據一致性強。
2)、MySQL的replication數據同步的原理 我們在配置的時候開啟了它的二進制日誌,每次操作數據庫的時候都會更新到這個日誌裡面去。主從通過同步這個日誌來保證數據的一致性。
3)、可否不同步全部的數據 可以配置,同步哪些數據庫,甚至是哪些表。
4)、怎麼關閉和開始同步
5)、我就我的理解畫出了,主從、主從從、主主、複製的圖。
往期推薦:
利用Docker僅花1分鐘時間安裝好MySQL服務
Linux下MySQL 5.7的離線與在線安裝(圖文)
Linux下安裝MySQL8.0(收藏!)
mysql 開啟主從同步
在[mysqld]配置段添加如下字段
使用master狀態
show master status; 記錄file和position的值
在[mysqld]配置段添加如下字段,
連接slave,在mysql命令行執行以下命令,設置參數,啟動slave
MASTER_LOG_FILE 對應master的status的file
MASTER_LOG_POS 對應master的status的position
主要查看Slave_IO_Running和Slave_SQL_Running 兩列是否都為YES
如何配置兩個MySQL數據庫之間的主從同步功能?
IP的設置:A主機 IP:10.10.0.119;Mask:255.255.0.0;B主機 IP:10.10.8.112;Mask:255.255.0.0
在IP設置完成以後,需要確定兩主機的防火牆確實已經關閉。可以使用命令service iptables status查看防火牆狀態。如果防火牆狀態。
為仍在運行。使用service iptables stop來停用防火牆。如果想啟動關閉防火牆,可以使用setup命令來禁用或定製。最終以兩台主機可以相互ping通為佳。
3.2 配置A主(master) B從(slave)模式;3.2.1 配置A 為master。
增加一個用戶同步使用的帳號:
GRANT FILE ON *.* TO ‘backup’@’10.10.8.112′ IDENTIFIED BY ‘1234’;
GRANTREPLICATION SLAVE ON *.* TO ‘backup’@’10.10.8.112′ IDENTIFIED BY ‘1234’。
賦予10.10.8.112也就是Slave機器有File權限,只賦予Slave機器有File權限還不行,還要給它REPLICATION SLAVE的權限才可以。
增加一個數據庫作為同步數據庫:create database test;
創建一個表結構:create table mytest (username varchar(20),password varchar(20));
修改配置文件:修改A的/etc/my.cnf文件。
在my.cnf配置項中加入下面配置:
server-id = 1 #Server標識
log-bin
binlog-do-db=test #指定需要日誌的數據庫
重起數據庫服務:
service mysqld restart
查看server-id:
show variable like ‘server_id’。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/303157.html