婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Django搭建MySQL主從實現讀寫分離

Django搭建MySQL主從實現讀寫分離

熱門標簽:成都呼叫中心外呼系統哪家強 旅游廁所地圖標注怎么弄 西青語音電銷機器人哪家好 百應電話機器人總部 宿州電話機器人哪家好 地圖標注與注銷 無錫智能外呼系統好用嗎 電梯新時達系統外呼顯示e 南昌地圖標注

一、MySQL主從搭建

主從配置原理:

  • 主庫寫日志到 BinLog
  • 從庫開個 IO 線程讀取主庫的 BinLog 日志,并寫入 RelayLog
  • 再開一個 SQL 線程,讀 RelayLog 日志,回放到從庫中

主從配置流程:

  • master 會將變動記錄到二進制日志里面;
  • master 有一個 I/O 線程將二進制日志發送到 slave;
  • salve 有一個 I/O 線程把 master 發送的二進制寫入到 relay 日志里面;
  • slave 有一個 SQL 線程,按照 relay 日志處理 slave 的數據;

操作步驟

使用 docker 模擬兩臺 MySQL 數據庫機器

1、修改配置文件:

主庫的配置文件

[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000

server-id=100    # 主庫,同一局域網內注意要唯一
log-bin=mysql-bin # 開啟二進制日志功能,可以隨便取名字(二進制文件名)

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

從庫的配置文件

[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000

server-id=101      # 從庫設置server_id,注意要唯一
log-bin=mysql-slave-bin   # 開啟二進制日志功能,定義名字,以備Slave作為其它Slave的Master時使用
relay_log=edu-mysql-relay-bin # relay_log配置中繼日志

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

啟動docker

#啟動主庫容器(掛載外部目錄,端口映射成33307,密碼設置為123456)
docker run  -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 33307:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
                    
#啟動從庫容器(掛載外部目錄,端口映射成33306,密碼設置為123456)
docker run  -di -v /home/mysql2/data/:/var/lib/mysql -v /home/mysql2/conf.d:/etc/mysql/conf.d -v /home/mysql2/my.cnf:/etc/mysql/my.cnf -p 33306:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

2、由于主庫和從庫都需要對日志文件進行操作,這就需要另一個用戶來操作,所以主從都需要創建一個用戶

# 連接庫
mysql -h 192.168.88.131 -P 33307 -u root -p123456

# 在主庫創建用戶并授權
# 創建test用戶
create user 'test' identified by '123';
# 授權用戶
grant all privileges on *.* to 'test' ;
# 刷新權限
flush privileges;

3、連接從庫配置

# 連接從庫
mysql -h 192.168.88.131 -P 33306 -u root -p123456

# 命令如下
change master to master_host='192.168.88.131',master_port=33307,master_user='test',master_password='123',master_log_file='mysql-bin.000003',master_log_pos=0;

# 啟用從庫
start slave;
# 停止從庫
stop slave;
# 查看從庫狀態
show slave status\G;
# 這兩個yes表示匹配成功
    -Slave_IO_Running: Yes
    -Slave_SQL_Running: Yes

 

# 配置詳解
change master to 
master_host='MySQL主服務器IP地址', 
master_user='之前在MySQL主服務器上面創建的用戶名', 
master_password='之前創建的密碼', 
master_log_file='MySQL主服務器狀態中的二進制文件名',   # show master status; 查看
master_log_pos='MySQL主服務器狀態中的position值';  # show master status; 查看

二、Django實現讀寫分離

首先主從搭建好了后:

在 setting 中配置

DATABASES = {
    # 主庫
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '192.168.88.131',
        'PORT': 33307,
    },
    # 從庫
    'slave': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '192.168.88.131',
        'PORT': 33306,
    },
}

在數據庫遷移的時候,可以指定把那個app的表結構遷移到那個庫

python manage.py migrate app01 --database=default

手動指定

# 去default庫寫——>主庫
content = models.User.objects.using('default').create(name='小楊', age='20')

# 去slave庫查——>從庫
content = models.User.objects.using('slave').all().first()

自動指定

1、新建一個py文件

db_router.py

class Router:
    def db_for_read(self, model, **hints):
        return 'slave'

    def db_for_write(self, mode, **hints):
        return 'default'
    
    
# 更細粒度
class Router1:
    def db_for_read(self, model, **hints):
        if model._meta.model_name == 'user': # 只有User表才會去從庫讀
            return 'slave'
        else:
            return 'default'

    def db_for_write(self, model, **hints):
        return 'default'

2、在 setting 中注冊

DATABASE_ROUTERS = ['db_router.Router',]
# 以后只要是寫操作就會用default,只要是讀操作自動去slave

到此這篇關于Django搭建MySQL主從實現讀寫分離的文章就介紹到這了,更多相關Django MySQL讀寫分離內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL的時間差函數TIMESTAMPDIFF、DATEDIFF的用法
  • MySQL的時間差函數(TIMESTAMPDIFF、DATEDIFF)、日期轉換計算函數(date_add、day、date_format、str_to_date)
  • 實現MySQL + PostgreSQL批量插入更新insertOrUpdate
  • MYSQL row_number()與over()函數用法詳解
  • MySQL隱式類型轉換導致索引失效的解決
  • 淺談MySQL數據查詢太多會OOM嗎
  • MySQL多表連接查詢詳解
  • mysql中TIMESTAMPDIFF案例詳解

標簽:西安 濰坊 辛集 許昌 渭南 雅安 七臺河 贛州

巨人網絡通訊聲明:本文標題《Django搭建MySQL主從實現讀寫分離》,本文關鍵詞  Django,搭建,MySQL,主從,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Django搭建MySQL主從實現讀寫分離》相關的同類信息!
  • 本頁收集關于Django搭建MySQL主從實現讀寫分離的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产一区视频网站| www.亚洲在线| 成人av在线资源网站| 日韩欧美一区在线观看| 亚洲大片一区二区三区| 色婷婷久久久久swag精品| 中文字幕视频一区| www.色综合.com| 国产亚洲欧美激情| 99久久伊人精品| 亚洲精品第1页| 欧美性生活久久| 日韩国产欧美在线视频| 在线不卡一区二区| 韩国av一区二区三区| 国产三级精品在线| 一本大道久久精品懂色aⅴ| 一区二区三国产精华液| 日韩欧美在线网站| fc2成人免费人成在线观看播放| 综合久久给合久久狠狠狠97色| 日本韩国一区二区| 日本成人在线网站| 久久久噜噜噜久久人人看 | 欧美专区日韩专区| 日韩成人精品在线观看| 国产精品免费视频一区| 欧美三级日本三级少妇99| 看国产成人h片视频| 国产精品国产自产拍在线| 欧美丝袜第三区| 国产美女精品一区二区三区| 最新欧美精品一区二区三区| 5858s免费视频成人| av成人老司机| 老司机精品视频一区二区三区| 久久久国产精品不卡| 欧美在线观看视频一区二区三区| 久久精品国产免费| 亚洲超丰满肉感bbw| 中文字幕精品—区二区四季| 91精品久久久久久蜜臀| 色婷婷激情综合| 国产一区在线视频| 午夜影院在线观看欧美| 国产精品久久久久久亚洲毛片 | 中文欧美字幕免费| 欧美一区二区视频观看视频| 91美女视频网站| 成人精品在线视频观看| 韩国av一区二区| 免费的国产精品| 亚洲电影在线免费观看| 亚洲女女做受ⅹxx高潮| 国产无一区二区| 精品国产免费久久| 日韩欧美一级片| 欧美一区午夜视频在线观看| 在线观看亚洲一区| 欧美亚洲综合久久| 91视频com| 91在线码无精品| 91在线看国产| 不卡一区二区三区四区| 国产精品一区二区黑丝| 久久国产视频网| 久久超碰97中文字幕| 天天色综合天天| 首页国产欧美久久| 亚洲va欧美va人人爽| 亚洲成人先锋电影| 亚洲电影视频在线| 日日夜夜精品视频免费| 日韩av在线播放中文字幕| 日韩av在线播放中文字幕| 性做久久久久久久免费看| 一区二区三区日本| 亚洲一卡二卡三卡四卡五卡| 亚洲一区二区三区视频在线播放 | 中文字幕乱码久久午夜不卡| 国产日韩综合av| 粉嫩一区二区三区性色av| 国产精品一品二品| 国产a久久麻豆| 99久久国产免费看| 欧美在线你懂得| 在线成人小视频| 精品国产成人系列| 国产精品免费丝袜| 亚洲第一福利一区| 蜜臀99久久精品久久久久久软件| 麻豆视频观看网址久久| 国产一区二区剧情av在线| 粗大黑人巨茎大战欧美成人| 99久久精品99国产精品| 欧美天堂一区二区三区| 欧美成人一区二区三区在线观看| 精品久久人人做人人爰| 成人免费在线观看入口| 日韩精品一卡二卡三卡四卡无卡| 国产精品一区一区三区| 91小视频在线免费看| 欧美色窝79yyyycom| 久久综合久久综合亚洲| 一区二区三区日韩在线观看| 国产中文字幕精品| 91国产丝袜在线播放| 欧美不卡一区二区三区四区| 亚洲欧美综合网| 久久久亚洲精华液精华液精华液| 亚洲丝袜制服诱惑| 蜜桃av噜噜一区| 97精品久久久午夜一区二区三区| 717成人午夜免费福利电影| 国产校园另类小说区| 日韩在线一区二区| 成人毛片视频在线观看| 日韩午夜在线影院| 亚洲国产毛片aaaaa无费看| 国模冰冰炮一区二区| 欧美人牲a欧美精品| 综合色中文字幕| 国产成人av影院| 日韩午夜电影av| 视频一区二区国产| 在线视频中文字幕一区二区| 久久亚洲一区二区三区明星换脸| 亚洲午夜久久久| av一区二区久久| 久久精品水蜜桃av综合天堂| 免费成人在线网站| 欧洲精品在线观看| 亚洲欧洲成人精品av97| 国产一区三区三区| 欧美撒尿777hd撒尿| 亚洲精品美腿丝袜| 91玉足脚交白嫩脚丫在线播放| 国产清纯白嫩初高生在线观看91| 精品一区二区三区免费播放| 欧美日韩免费视频| 亚洲国产综合在线| 欧美综合色免费| 亚洲一区二区成人在线观看| 欧美性色黄大片| 午夜成人免费电影| 欧美高清一级片在线| 日本亚洲视频在线| 日韩欧美一二三四区| 极品尤物av久久免费看| 久久综合色综合88| 国产iv一区二区三区| 亚洲欧美激情小说另类| 欧美午夜精品免费| 麻豆国产一区二区| 久久日一线二线三线suv| 国产精品一区二区三区四区| 国产精品久久久久一区| 欧美在线制服丝袜| 日本少妇一区二区| 久久久久久毛片| 99热国产精品| 亚洲成人在线免费| 精品国产免费一区二区三区四区| 国产毛片精品视频| 最新国产の精品合集bt伙计| 欧美优质美女网站| 美女视频一区二区三区| 久久久久高清精品| 色婷婷一区二区三区四区| 日韩在线播放一区二区| 26uuu亚洲综合色| 99久久综合精品| 日韩**一区毛片| 国产精品亲子乱子伦xxxx裸| 欧美人与禽zozo性伦| 国产精品一区二区91| 一区二区三区日韩在线观看| 欧美一区二区三区视频免费播放| 福利视频网站一区二区三区| 亚洲国产成人av网| 精品国产一区二区在线观看| 91网站在线观看视频| 日韩av一区二区三区四区| 国产精品国产精品国产专区不蜜| 欧美精品v国产精品v日韩精品| 成人免费视频一区| 免费高清不卡av| 亚洲欧美区自拍先锋| 精品美女一区二区| 成人精品gif动图一区| 亚洲自拍都市欧美小说| 久久久综合视频| 欧美日本韩国一区二区三区视频| 国产美女精品一区二区三区| 亚洲一卡二卡三卡四卡五卡| 日本一区二区免费在线| 日韩欧美久久久| 欧美丰满嫩嫩电影| 在线看日韩精品电影| 国产一区二区三区电影在线观看|