国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

Mysql5.7中如何搭建主從復制

發(fā)布時(shí)間:2021-09-14 18:07 來(lái)源:億速云 閱讀:0 作者:小新 欄目: Mysql 歡迎投稿:712375056

這篇文章主要介紹了5.7中如何搭建主從復制,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著(zhù)大家一起了解一下。

一、概述

主從復制可以實(shí)現對數據備份和讀寫(xiě)分離:

為了避免服務(wù)的不可用以及保障數據的安全可靠性,我們至少需要部署兩臺或兩臺以上來(lái)存儲數據庫數據,也就是我們需要將數據復制多份部署在多臺不同的服務(wù)器上,即使有一臺服務(wù)器出現故障了,其他服務(wù)器依然可以繼續提供服務(wù).
MySQL提供了主從復制功能以提高服務(wù)的可用性與數據的安全可靠性.

主從復制是指服務(wù)器分為主服務(wù)器和從服務(wù)器,主服務(wù)器負責讀和寫(xiě),從服務(wù)器只負責讀,主從復制也叫 master/slave,master是主,slave是從,但是并沒(méi)有強制,也就是說(shuō)從也可以寫(xiě),主也可以讀,只不過(guò)一般我們不這么做?!鞠嚓P(guān)推薦:mysql視頻教程】

二、主從復制架構

一主多從架構:

多主多從架構:

主從復制原理:

  1. 當 master 主服務(wù)器上的數據發(fā)生改變時(shí),則將其改變寫(xiě)入二進(jìn)制事件日志文件中

  2. salve 從服務(wù)器會(huì )在一定時(shí)間間隔內對 master 主服務(wù)器上的二進(jìn)制日志進(jìn)行探測,探測其是否發(fā)生過(guò)改變,如果探測到 master 主服務(wù)器的二進(jìn)制事件日志發(fā)生了改變,則開(kāi)始一個(gè) I/O Thread 請求 master 二進(jìn)制事件日志

  3. 同時(shí) master 主服務(wù)器為每個(gè) I/O Thread 啟動(dòng)一個(gè)dump Thread,用于向其發(fā)送二進(jìn)制事件日志

  4. slave 從服務(wù)器將接收到的二進(jìn)制事件日志保存至自己本地的中繼日志文件中

  5. salve 從服務(wù)器將啟動(dòng) SQL Thread 從中繼日志中讀取二進(jìn)制日志,在本地重放,使得其數據和主服務(wù)器保持一致;

  6. 最后 I/O Thread 和 SQL Thread 將進(jìn)入睡眠狀態(tài),等待下一次被喚醒

三、一主多從搭建

搭建環(huán)境:
1. Linux 版本 CentOS release 6.9 (Final)
2. mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz下載地址

1.解壓 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

#/usr/local下解壓
tar xzvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
#重命名文件
mv mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz mysql

2.創(chuàng )建多實(shí)例數據目錄

cd /usr/local/mysql
mkdir data
cd data
#主
mkdir 3306
#從
mkdir 3307


3.數據庫初始化

#mysql 安裝bin目錄下執行
#initialize-insecure 表示不生成MySQL數據庫root用戶(hù)的隨機密碼,即root密碼為空

#初始化3306
./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3306 --user=mysql
#初始化3307
./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3307 --user=mysql

若出現錯誤執行
yum install libaio-devel.x86_64
yum -y install numactl
4.創(chuàng )建各個(gè)數據庫的配置文件my.cnf

注意:
1.建議在linux下創(chuàng )建文件防止windows 與 linux 編碼不一致
2.不同的實(shí)例下配置要修改端口號
3.將修改好的my.cnf分別放至3306、3307文件夾內

[client]
port        = 3306
socket      = /usr/local/mysql/data/3306/mysql.sock
default-character-set=utf8

[mysqld]
port    = 3306
socket  = /usr/local/mysql/data/3306/mysql.sock
datadir = /usr/local/mysql/data/3306
log-error = /usr/local/mysql/data/3306/error.log
pid-file = /usr/local/mysql/data/3306/mysql.pid

character-set-server=utf8
lower_case_table_names=1
autocommit = 1

log-bin=mysql-bin
server-id=3306

5.多實(shí)例啟動(dòng)
切換到/usr/local/mysql-5.7.24/bin目錄下,使用 msyqld_safe 命令指定配置文件并啟動(dòng)MySQL服務(wù):

#其中 --defaults-file 是指定配置文件,& 符合表示后臺啟動(dòng)
./mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf &
./mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &

6.數據庫初始化配置
分別在各個(gè)實(shí)例內進(jìn)行配置 如3306:

#客戶(hù)端連接
./mysql -uroot -p -P3306 -h227.0.0.1
#修改Mysql密碼
alter user 'root'@'localhost' identified by 'root';
#授權遠程訪(fǎng)問(wèn)(這樣遠程客戶(hù)端才能訪(fǎng)問(wèn))
grant all privileges on *.* to root@'%' identified by 'root';
#刷新配置
flush privileges;

客戶(hù)端連接測試

7.數據庫唯一id配置

1.確定各個(gè)實(shí)例正常啟動(dòng)無(wú)誤后進(jìn)行主從配置
2.關(guān)閉實(shí)例分別在各個(gè)實(shí)例的my.cnf文件加入以下配置

#/usr/local/mysql/bin 關(guān)閉實(shí)例
./mysqladmin -uroot -p -P3307 -h227.0.0.1 shutdown
./mysqladmin -uroot -p -P3306 -h227.0.0.1 shutdown

#新加的配置
log-bin=mysql-bin   	#表示啟用二進(jìn)制日志
server-id=3307 		#表示server編號,編號要唯一 建議和端口保持一致

加入完畢后啟動(dòng)各個(gè)實(shí)例

./mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf &

./mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &

7.主機設置
1.在主服務(wù)器上創(chuàng )建復制數據的賬號并授權

#在/usr/local/mysql/bin目錄下執行 
 ./mysql -uroot -p -P3306 -h227.0.0.1
 grant replication slave on *.* to 'copy'@'%' identified by 'root';

2.查看主服務(wù)器狀態(tài)

# mysql主服務(wù)器默認初始值:
#			File:mysql-bin.000001
#			Position:154

show master status;

3.如果主服務(wù)狀態(tài)不是初始狀態(tài),需要重置狀態(tài)

reset master;

7.從機設置
1.需要登錄到 3306|3307|3308的從機客戶(hù)端

#在/usr/local/mysql/bin目錄下執行  多臺從機‘|’分隔
./mysql -uroot -p -P3308|3309|3310 -h227.0.0.1

2.查看從機狀態(tài)

#初始狀態(tài):Empty set 
show slave status;

3.若不是初始狀態(tài),重置一下

stop slave; 	#停止復制,相當于終止從服務(wù)器上的IO和SQL線(xiàn)程
reset slave;

4.設置從機設置主機配置

change master to 
master_host='主機ip',master_user='copy',
master_port=主機端口,master_password='連接主機密碼',
master_log_file='mysql-bin.000001',master_log_pos=154;

5.執行 開(kāi)始復制命令

start slave;

6.查看從機狀態(tài)

show slave status \G;


7.測試主從復制

在主數據庫中進(jìn)行創(chuàng )建表,從庫同步就算搭建成功了!

若你在從庫進(jìn)行寫(xiě)操作,則從服務(wù)器不再同步主庫數據,在從庫中執行此命令即可解決!

stop slave;
set global sql_slave_skip_counter =1;
start slave;
show slave status\G;

若主從復制速度較慢的話(huà),執行此命令

 slave-parallel-type=LOGICAL_CLOCK
 slave-parallel-workers=16
 master_info_repository=TABLE
 relay_log_info_repository=TABLE
 relay_log_recovery=ON

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

免费A级毛片AV无码| 国产福利在线永久视频| 亚洲欧美中文字幕5发布| 亚洲AV产在线精品亚洲第一站| 人妻精品无码一区二区三区| 国产精品成人99久久久久|