Django搭建MySQL主從實(shí)現(xiàn)讀寫分離_第1頁(yè)
Django搭建MySQL主從實(shí)現(xiàn)讀寫分離_第2頁(yè)
Django搭建MySQL主從實(shí)現(xiàn)讀寫分離_第3頁(yè)
Django搭建MySQL主從實(shí)現(xiàn)讀寫分離_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第Django搭建MySQL主從實(shí)現(xiàn)讀寫分離從庫(kù)開(kāi)個(gè)IO線程讀取主庫(kù)的BinLog日志,并寫入RelayLog

再開(kāi)一個(gè)SQL線程,讀RelayLog日志,回放到從庫(kù)中

主從配置流程:

master會(huì)將變動(dòng)記錄到二進(jìn)制日志里面;

master有一個(gè)I/O線程將二進(jìn)制日志發(fā)送到slave;

salve有一個(gè)I/O線程把master發(fā)送的二進(jìn)制寫入到relay日志里面;

slave有一個(gè)SQL線程,按照relay日志處理slave的數(shù)據(jù);

操作步驟

使用docker模擬兩臺(tái)MySQL數(shù)據(jù)庫(kù)機(jī)器

1、修改配置文件:

主庫(kù)的配置文件

[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#主庫(kù),同一局域網(wǎng)內(nèi)注意要唯一

log-bin=mysql-bin#開(kāi)啟二進(jìn)制日志功能,可以隨便取名字(二進(jìn)制文件名)

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

從庫(kù)的配置文件

[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#從庫(kù)設(shè)置server_id,注意要唯一

log-bin=mysql-slave-bin#開(kāi)啟二進(jìn)制日志功能,定義名字,以備Slave作為其它Slave的Master時(shí)使用

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

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

啟動(dòng)docker

#啟動(dòng)主庫(kù)容器(掛載外部目錄,端口映射成33307,密碼設(shè)置為123456)

dockerrun-di-v/home/mysql/data/:/var/lib/mysql-v/home/mysql/conf.d:/etc/mysql/conf.d-v/home/mysql/f:/etc/mysql/f-p33307:3306--namemysql-master-eMYSQL_ROOT_PASSWORD=123456mysql:5.7

#啟動(dòng)從庫(kù)容器(掛載外部目錄,端口映射成33306,密碼設(shè)置為123456)

dockerrun-di-v/home/mysql2/data/:/var/lib/mysql-v/home/mysql2/conf.d:/etc/mysql/conf.d-v/home/mysql2/f:/etc/mysql/f-p33306:3306--namemysql-slave-eMYSQL_ROOT_PASSWORD=123456mysql:5.7

2、由于主庫(kù)和從庫(kù)都需要對(duì)日志文件進(jìn)行操作,這就需要另一個(gè)用戶來(lái)操作,所以主從都需要?jiǎng)?chuàng)建一個(gè)用戶

#連接庫(kù)

mysql-h31-P33307-uroot-p123456

#在主庫(kù)創(chuàng)建用戶并授權(quán)

#創(chuàng)建test用戶

createuser'test'identifiedby'123';

#授權(quán)用戶

grantallprivilegeson*.*to'test';

#刷新權(quán)限

flushprivileges;

3、連接從庫(kù)配置

#連接從庫(kù)

mysql-h31-P33306-uroot-p123456

#命令如下

changemastertomaster_host='31',master_port=33307,master_user='test',master_password='123',master_log_file='mysql-bin.000003',master_log_pos=0;

#啟用從庫(kù)

startslav

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論