最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL數(shù)據(jù)的讀寫分離之maxscale的使用方式

 更新時(shí)間:2023年12月25日 10:50:12   作者:我是菜鳥131  
這篇文章主要介紹了MySQL數(shù)據(jù)的讀寫分離之maxscale的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

數(shù)據(jù)的讀寫分離

什么是讀寫分離

把客戶端訪問數(shù)據(jù)的讀(selec)請(qǐng)求和寫(insert、update、delete)請(qǐng)求分別分配給不同的數(shù)據(jù)庫服務(wù)器處理

如何實(shí)現(xiàn)客戶端訪問數(shù)據(jù)的,讀寫分離

通過程序?qū)崿F(xiàn)

  • 讀請(qǐng)求----->數(shù)據(jù)庫服務(wù)器
  • 寫請(qǐng)求----->另一臺(tái)數(shù)據(jù)庫服務(wù)器

配置服務(wù)實(shí)現(xiàn)(在服務(wù)器上安裝軟件,提供服務(wù))

  • 中間件軟件
  • mysql-proxy
  • mycat
  • maxscale
  • client---->服務(wù)器----mysql

讀寫分離的原理

由MySQL代理面向客戶端提供服務(wù)

  • 收到SQL寫請(qǐng)求時(shí),交給master服務(wù)器處理
  • 收到SQL讀請(qǐng)求時(shí),交給slave服務(wù)器處理

為什么要配置數(shù)據(jù)讀寫分離

數(shù)據(jù)分流,分擔(dān)單臺(tái)服務(wù)器得工作壓力

構(gòu)建思路 

1.部署MySQL一主一從結(jié)構(gòu)

  • 主服務(wù)器:192.168.4.51
  • 從服務(wù)器:192.168.4.52

2.部署MySQL代理服務(wù)器

  • 裝包,修改配置文件,啟動(dòng)服務(wù)

3.測(cè)試配置

  • 客戶端連接代理服務(wù)訪問數(shù)據(jù)

配置數(shù)據(jù)讀寫分離

拓?fù)鋱D:

首先配置51與52的的主從復(fù)制,51為主,52為從

具體配置過程請(qǐng)看:MySQL主從復(fù)制

#192.168.4.52
mysql -uroot -p123456 -e "show slave status\G"

配置代理服務(wù)器57

1)安裝提供服務(wù)的軟件

部署Maxscale代理軟件

由MySQL的兄弟公司MariaDB開發(fā)

下載地址:https://dlm.mariadb.com/browse/mariadbmaxscale/49/789/?_ga=2.180365351.1460156067.1640182534-1832063011.1640182534

本人使用的環(huán)境centos7.9 、MySQL5.7.35 、maxscle2.3.20

wget https://dlm.mariadb.com/1065384/MaxScale/2.3.20/centos/7/x86_64/maxscale-2.3.20-1.centos.7.x86_64.rpm
yum -y install maxscale-2.3.20-1.centos.7.x86_64.rpm
ss -nultp | grep 3306  #因?yàn)橐龃矸?,不能開啟MySQL數(shù)據(jù)服務(wù),如果開啟請(qǐng)關(guān)閉
systemctl stop mysqld
rpm -ql maxscale
主配置文件日志文件
/etc/maxscale.cnf/var/log/maxscale

2)修改服務(wù)配置文件

 vim /etc/maxscale.cnf
 [maxscale]   #默認(rèn)服務(wù)啟動(dòng)后線程的個(gè)數(shù),auto自動(dòng),可以自己修改
 threads=auto
#線程是進(jìn)程的最小工作單位,他兩的區(qū)別,線程共享資源,進(jìn)程獨(dú)享資源
[server1]  #指定服務(wù)器的IP地址,有兩臺(tái)所以要寫兩次,并且名稱不能一致,其他為默認(rèn)配置
  type=server
  address=192.168.4.51
  port=3306
  protocol=MariaDBBackend
[server2]  #定義服務(wù)器的IP地址
  type=server
  address=192.168.4.52
  port=3306
  protocol=MariaDBBackend
  
  [MariaDB-Monitor]   #監(jiān)視進(jìn)程
  type=monitor
  module=mariadbmon
  servers=server1,server2    #數(shù)據(jù)庫服務(wù)器列表
  user=maxscalemon     #使用哪個(gè)用戶執(zhí)行這個(gè)程序,使用哪個(gè)用戶,需要到數(shù)據(jù)庫服務(wù)器進(jìn)行相應(yīng)的授權(quán),監(jiān)視server1,sever2
  password=123456
  monitor_interval=2000   #多長時(shí)間查看一次,默認(rèn)單位毫秒
#[Read-Only-Service]    #只讀服務(wù)的配置
 # type=service               #我們注釋掉這個(gè)配置,因?yàn)槲覀兿M谠L問時(shí),既可以讀也可以寫
  #router=readconnroute
  #servers=server1
  #user=myuser
  #password=mypwd
  #router_options=slave
  [Read-Write-Service]     #定義讀寫服務(wù)
  type=service
  router=readwritesplit    #讀寫分離用戶
  servers=server1,server2
  user=maxscalerouter    #路由用戶,用來驗(yàn)證監(jiān)視用戶(客戶端連接用戶)是否存在
  #我們使用客戶端連接數(shù)據(jù)庫,MySQL代理怎樣知道你當(dāng)前登錄的用戶是否存在,使用這個(gè)用戶去查看use表
  password=123456
  
  [MaxAdmin-Service]   #管理服務(wù)
  type=service
  router=cli    #命令行
  
  #[Read-Only-Listener]   #定義只讀的端口,因?yàn)樯厦嫖覀儾恍枰@個(gè)選項(xiàng)注釋掉,這里也需要注釋
  #type=listener
  #service=Read-Only-Service
  #protocol=MariaDBClient
  #port=4008
  
  [Read-Write-Listener]  #監(jiān)聽讀寫服務(wù)的端口
  type=listener
  service=Read-Write-Service
  protocol=MariaDBClient
  port=4006
  
  [MaxAdmin-Listener]    #管理服務(wù)端口號(hào),如果不想讓他選擇默認(rèn),也可以進(jìn)行添加
  type=listener
  service=MaxAdmin-Service
  protocol=maxscaled
  #socket=default
  port=4016    #自定義端口

3)配置數(shù)據(jù)庫服務(wù)器

添加相應(yīng)的用戶

添加監(jiān)控用戶:maxscalemon

添加路由用戶:maxscalerouter

#在主/從服務(wù)器創(chuàng)建授權(quán)用戶192.168.4.51
mysql -uroot -p123456
#replication slave   監(jiān)控主從的狀態(tài)是否正常
#replication client   監(jiān)控主從的服務(wù)是否運(yùn)行
grant replication slave,replication client on *.* to maxscalemon@"%" identified by "123456";
grant select on mysql.* to maxscalerouter@"%" identified by "123456";
#因?yàn)槭侵鲝膹?fù)制,所以在主服務(wù)上配置,從服務(wù)器也會(huì)同步相應(yīng)數(shù)據(jù)
select user,host from mysql.user;  #查看用戶
#192.168.4.52
mysql -uroot -p123456 -e"select user,host from mysql.user" #查看是否同步成功

4)啟動(dòng)代理服務(wù)

#192.168.4.51
maxscale -f /etc/maxscale.cnf
ls /var/log/maxscale   #maxscale軟件的日志信息,如果沒有啟動(dòng)可以查看錯(cuò)誤信息
ps -C maxscale   #查看進(jìn)程信息
ss -lnutp | grep maxscale   #查看端口信息

MaxScale cannot be run as root. Failed to write child process message!

如果啟動(dòng)抱以上錯(cuò)誤:可以使用以下方式解決

maxscale -f /etc/maxscale.cnf -U maxscale 指定啟動(dòng)用戶名
maxscale -f /etc/maxscale.cnf -U maxscale maxscalemon

5)查看服務(wù)信息

驗(yàn)證配置 

1)在代理服務(wù)器本機(jī)連接管理服務(wù),查看監(jiān)控信息

#在代理服務(wù)器本機(jī)訪問管理
#maxadmin -uadmin -pmariadb -P端口  默認(rèn)用戶admin默認(rèn)密碼,默認(rèn)密碼maridb
maxadmin -uadmin -pmariadb -P4016
list servers  #查看監(jiān)控信息,調(diào)用的是 [MariaDB-Monitor]模塊

2)在客戶端連接代理服務(wù)器57訪問數(shù)據(jù)

在連接之前先添加相應(yīng)的授權(quán)用戶

#192.168.4.51
mysql -uroot -p123456
create database db7;
create table db7.a (id int);
grant select,insert on db7.* to jim@"%" identified by "123456";
#192.168.4.3
mysql -h 192.168.4.57 -P4006 -ujim -p123456
select * from db7.a;
insert into db7.a values(100);
select * from db7.a;

3)驗(yàn)證是否實(shí)現(xiàn)了數(shù)據(jù)的讀寫分離

在從服務(wù)器52本機(jī)進(jìn)行數(shù)據(jù)插入。

因?yàn)?2是從服務(wù)器所以插入52的數(shù)據(jù)并不會(huì)同步到51

#192.168.4.52
mysql -uroot -p123456
insert into db7.a values(120);
select * from db7.a;

在主服務(wù)器上查看

在客戶端重新連接,重新查看表里的內(nèi)容

mysql -h 192.168.4.57 -P4006 -ujim -p123456
select * from db7.a;

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • Mysql注入中的outfile、dumpfile、load_file函數(shù)詳解

    Mysql注入中的outfile、dumpfile、load_file函數(shù)詳解

    這篇文章主要介紹了Mysql注入中的outfile、dumpfile、load_file,需要的朋友可以參考下
    2018-05-05
  • MySQL修改數(shù)據(jù)的超詳細(xì)教程

    MySQL修改數(shù)據(jù)的超詳細(xì)教程

    在MySQL中可以使用?UPDATE?語句來修改、更新一個(gè)或多個(gè)表的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL修改數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • MySQL中Buffer?Pool內(nèi)存結(jié)構(gòu)詳情

    MySQL中Buffer?Pool內(nèi)存結(jié)構(gòu)詳情

    這篇文章主要介紹了MySQL中Buffer?Pool內(nèi)存結(jié)構(gòu)詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • MySQL中FIND_IN_SET函數(shù)與INSTR函數(shù)用法解析

    MySQL中FIND_IN_SET函數(shù)與INSTR函數(shù)用法解析

    這篇文章主要介紹了MySQL中FIND_IN_SET函數(shù)與INSTR函數(shù)用法解析,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-04-04
  • 記一次mysql線上分頁排序亂序問題解決

    記一次mysql線上分頁排序亂序問題解決

    本文主要介紹了mysql線上分頁排序亂序問題解決,由于在分頁查詢時(shí)未正確使用ORDERBY和LIMIT導(dǎo)致的跨頁數(shù)據(jù)重復(fù)問題,下面就來詳細(xì)的介紹一下解決方法,感興趣的可以了解一下
    2026-03-03
  • 超詳細(xì)的mysql圖文安裝教程

    超詳細(xì)的mysql圖文安裝教程

    這篇文章主要為大家分享了一份超詳細(xì)的mysql圖文安裝教程,安裝步驟有詳細(xì)的說明,,需要的朋友可以參考下
    2016-05-05
  • 基于Windows安裝MySQL 8.0.12圖文教程

    基于Windows安裝MySQL 8.0.12圖文教程

    這篇文章主要為大家詳細(xì)介紹了基于Windows安裝MySQL 8.0.12圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 詳解MySQL如何選擇合適的索引

    詳解MySQL如何選擇合適的索引

    選擇合適的索引是數(shù)據(jù)庫優(yōu)化中非常重要的一步,正確的索引可以大幅提高查詢性能,減少數(shù)據(jù)庫響應(yīng)時(shí)間;而不當(dāng)?shù)乃饕x擇則可能增加存儲(chǔ)開銷,影響數(shù)據(jù)庫性能,甚至使得某些操作變得更加緩慢,以下是選擇合適索引的一些指導(dǎo)原則和策略,需要的朋友可以參考下
    2024-12-12
  • MySQL SHOW STATUS語句的使用

    MySQL SHOW STATUS語句的使用

    這篇文章主要介紹了MySQL SHOW STATUS語句的使用,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-12-12
  • 解析如何使用Zend Framework 連接數(shù)據(jù)庫

    解析如何使用Zend Framework 連接數(shù)據(jù)庫

    本篇文章是對(duì)如何使用Zend Framework 連接數(shù)據(jù)庫的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評(píng)論

宁城县| 苗栗县| 福建省| 保亭| 亳州市| 信丰县| 遵义市| 关岭| 晋中市| 射阳县| 平遥县| 玉树县| 木兰县| 宣城市| 正蓝旗| 富蕴县| 安乡县| 武夷山市| 阿坝县| 东平县| 崇阳县| 古丈县| 呼伦贝尔市| 榕江县| 偃师市| 西平县| 沙河市| 洞口县| 施秉县| 靖江市| 绿春县| 北宁市| 百色市| 满洲里市| 白朗县| 秭归县| 台南市| 通江县| 莫力| 九台市| 亳州市|