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

歡迎訪問 生活随笔!

生活随笔

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

数据库

主从mysql能过滤指定dml吗_MyCat教程二:mysql主从复制实现 - HG-93

發布時間:2025/3/20 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 主从mysql能过滤指定dml吗_MyCat教程二:mysql主从复制实现 - HG-93 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

單個mysql數據庫在處理業務的時候肯定是有限的,這時我們擴展數據庫的第一種方式就是對數據庫做讀寫分離(主從復制),本文我們就先來介紹下怎么來實現mysql的主從復制操作。

1. 讀寫分離

原理:需要搭建主從模式,讓主數據庫(master)處理事務性增、改、刪操作(INSERT、UPDATE、DELETE),而從數據庫(slave)處理 SELECT 查詢操作。

??Mycat 配合數據庫本身的復制功能,可以解決讀寫分離的問題。

2.主從備份概念

什么是主從備份: 就是一種主備模式的數據庫應用.

主庫(Master)數據與備庫(Slave)數據完全一致.

實現數據的多重備份, 保證數據的安全.

可以在 Master[InnoDB]和 Slave[MyISAM]中使用不同的數據庫引擎,實現讀寫的分離

InnoDB:支持事務處理

MyISAM:不支持事務處理

2.1 MySQL5.5, 5.6 版本后本身支持主從備份

在老舊版本的 MySQL 數據庫系統中,不支持主從備份,需要安裝額外的 RPM 包.如果需要安裝 RPM,只能在一個位置節點安裝.

2.2 主從備份目的

2.2.1 實現主備模式

保證數據的安全. 盡量避免數據丟失的可能.

2.2.2 實現讀寫分離

使用不同的數據庫引擎,實現讀寫分離.提高所有的操作效率.

??InnoDB 使用 DML 語法操作. MyISAM 使用 DQL 語法操作.

2.3 主從備份效果

2.3.1 主庫操作同步到備庫

所有對 Master 的操作,都會同步到 Slave 中.如果 Master 和 Salve 天生上環境不同,那么對 Master 的操作,可能會在 Slave 中出現錯誤如: 在創建主從模式之前,Master 有 database : db1, db2, db3. Slave 有 database: db1, db2.創建主從模式.現在的情況 Master 和 Slave 天生不同.主從模式創建成功后,在 Master 中 drop database db3. Slave 中拋出數據庫 SQL 異常.后續所有的命令不能同步.一旦出現錯誤. 只能重新實現主從模式.

2.4 主從模式下的邏輯圖

3. MySQL主從模式搭建

3.1 安裝MYSQL

mysql安裝教程:

https://blog.csdn.net/weixin_45600622/article/details/102647528

環境地址:

主節點:192.168.88.180

從節點:192.168.88.181

3.2 主庫配置修改(Master)

路徑:/etc/my.cnf

3.2.1 server_id配置

本環境中 server_id 是 1

MySQL 服務唯一標識

配置要求:

server_id 任意配置,只要是數字即可

server_id Master 唯一標識數字必須小于 Slave 唯一標識數字.

3.2.2 log_bin配置

本環境中 log_bin 值 : master_log

開啟日志功能以及日志文件命名,log_bin=master_log

變量的值就是日志文件名稱.是日志文件名稱的主體.

MySQL 數據庫自動增加文件名后綴和文件類型.

3.2.3 重啟mysql

service mysql restart

3.2.4 登錄mysql

從mysql的安裝路徑下進入

./bin/mysql -uroot -h127.0.0.1 -p123456

3.2.5 創建用戶

在 MySQL 數據庫中,為不存在的用戶授權,就是同步創建用戶并授權.

此用戶是從庫訪問主庫使用的用戶

ip 地址不能寫為%. 因為主從備份中,當前創建的用戶,是給從庫 Slave 訪問主庫 Master使用的.用戶必須有指定的訪問地址.不能是通用地址.

grant all privileges on *.* to ‘username’@’ip’ identified by ‘password’ with grant option;

flush privileges;

grant all privileges on *.* to 'myslave'@'192.168.88.181' identified by 'myslave' with grant

option;

flush privileges;

3.2.6 查看用戶

use mysql;

select host, user from user;

3.2.7 查看 Master 信息

master_log.00003就是主從復制中從數據庫要讀取的日志文件。

注意:關閉防火墻或在防火墻中開放 3306 端口

3.3 從庫配置修改(slave)

3.3.1 修改my.cnf的server_id

從庫的 server_id要比主庫中的server_id的值要大

然后重啟mysql服務

3.3.2 連接mysql服務

3.3.3 停止 Slave 功能

stop slave

3.3.4 配置主庫信息

需要修改的數據是依據 Master 信息修改的.ip 是 Master 所在物理機 IP. 用戶名和密碼是Master 提供的 Slave 訪問用戶名和密碼. 日志文件是在 Master 中查看的主庫信息提供的.在Master 中使用命令 show master status 查看日志文件名稱.

change master to master_host=’ip’, master_user=’username’, master_password=’password’, master_log_file=’log_file_name’;

3.3.5 啟動 Slave 功能

start slave;

3.3.6 查看 Slave 配置

show slave status \G; # \G 行轉列

注意:如果輸出中有如下提示:

Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the –replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

原因是以為兩個數據庫是克隆出來的,所以uuid是一致的,這時只需要刪除掉一個uuid即可,具體如下:

把auto.cnf 注釋掉或者刪除掉,重啟mysql就會重新分配!

4. 主從測試

4.1 創建數據庫同步

在master上新建一個數據庫,然后查看slave中是否也有即可

create database demo2 default character set utf8;

4.2 創建table同步

create table t_user (id varchar(20),name varchar(20));

4.3 數據操作同步

insert into t_user (id,name)values('666','bobo');

通過演示我們發現主數據庫的修改會及時的同步到從數據庫,這樣mysql的主從配置就OK了,好了本文就到此,下篇來詳細介紹一下MyCat的安裝與配置

關注微信公眾號【程序員的夢想】,專注于Java,SpringBoot,SpringCloud,微服務,Docker以及前后端分離等全棧技術。

總結

以上是生活随笔為你收集整理的主从mysql能过滤指定dml吗_MyCat教程二:mysql主从复制实现 - HG-93的全部內容,希望文章能夠幫你解決所遇到的問題。

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