溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL 主從復(fù)制及原理

發(fā)布時(shí)間:2020-06-18 03:47:17 來(lái)源:網(wǎng)絡(luò) 閱讀:249 作者:spark_Gg 欄目:MySQL數(shù)據(jù)庫(kù)

1.主從復(fù)制配置
a. 環(huán)境:CentOS7.4,IP地址分別是主庫(kù):192.168.11.146,從庫(kù):192.168.11.238,
主庫(kù)版本應(yīng)低于或等于從庫(kù)版本,這里用的都是MySQL 8.0.13
b.主庫(kù)配置/etc/my.cnf文件

[mysqld]

#一般配置選項(xiàng)
user=mysql
port=3306
server_id=1
basedir= /usr/local/mysql
datadir= /usr/app/mysqldata

character_set_server=utf8

pid_file=/usr/app/mysqldata/mysql.pid
socket = /var/run/mysqld/mysqld.sock
#錯(cuò)誤日志
log_error= /usr/app/mysqldata/myerror.log
#慢日志
slow_query_log=1
slow_query_log_file=/usr/app/mysqllog/mysql.slow
long_query_time=5
#bin_log日志
log_bin=/usr/app/mysqllog/mysql_bin
skip_external_locking
skip_name_resolve
#開啟獨(dú)立表空間
innodb_file_per_table = on

[mysql]
no-auto-rehash
socket = /var/run/mysqld/mysqld.sock
#default-character-set=utf8
#safe-updates

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

重啟MySQL服務(wù)

/etc/init.d/mysqld start

授權(quán)slvave 用戶

grant replication slave,replication client on . to 'slvae_rp' identified by '111111';

flush privileges;

從庫(kù)配置/etc/my.cnf文件

[mysqld]

#一般配置選項(xiàng)
user=mysql
port=3306
server_id=1
basedir= /usr/local/mysql
datadir= /usr/app/mysqldata

character_set_server=utf8

pid_file=/usr/app/mysqldata/mysql.pid
socket = /var/run/mysqld/mysqld.sock
#錯(cuò)誤日志
log_error= /usr/app/mysqldata/myerror.log
#慢日志
slow_query_log=1
slow_query_log_file=/usr/app/mysqllog/mysql.slow
long_query_time=5
#bin_log日志
log_bin=/usr/app/mysqllog/mysql_bin
#開啟中繼日志
relay_log=/var/lib/mysql/relay-log
log_slave_updates=1 #從服務(wù)器將其SQL線程執(zhí)行的更新記入到從服務(wù)器自己的二進(jìn)制日志
read_only=1 #只讀模式

skip_external_locking
skip_name_resolve
#開啟獨(dú)立表空間
innodb_file_per_table = on

[mysql]
no-auto-rehash
socket = /var/run/mysqld/mysqld.sock
#default-character-set=utf8
#safe-updates

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

重啟mysql服務(wù)
/etc/init.d/mysqld restart

主庫(kù):
show master status;

從庫(kù):
change master to
master_host='192.168.11.146',
master_port=3306,
master_user='slave_rp',
master_password='111111',
master_log_file='mysql-bin.000001',
master_log_pos=154;
開啟從庫(kù)slava
start slave;
查看從庫(kù)狀態(tài)
show slave status;

確認(rèn)正常:
slave_io_running:yes
slave_sql_running:yes
seconds_behind_master 0

2.主從復(fù)制原理

MySQL 主從復(fù)制及原理
從庫(kù)生成兩個(gè)線程,一個(gè)I/O線程,一個(gè)SQL線程;

i/o線程去請(qǐng)求主庫(kù) 的binlog,并將得到的binlog日志寫到relay log(中繼日志) 文件中;
主庫(kù)會(huì)生成一個(gè) log dump 線程,用來(lái)給從庫(kù) i/o線程傳binlog;

SQL 線程,會(huì)讀取relay log文件中的日志,并解析成具體操作,來(lái)實(shí)現(xiàn)主從的操作一致,而最終數(shù)據(jù)一致;

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI