溫馨提示×

溫馨提示×

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

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

配置mysql5.7主從復(fù)制

發(fā)布時(shí)間:2020-07-17 13:09:10 來源:網(wǎng)絡(luò) 閱讀:139 作者:mantianlvye 欄目:系統(tǒng)運(yùn)維

一,配置主數(shù)據(jù)庫

1, 修改my.cnf或者my.ini

? ? ? ? ? ? ? ? ?[mysqld]

? ? ? ? ? ? ? ? ?log-bin=mysql-bin

? ? ? ? ? ? ? ? ?server-id=1

??? 修改完成,重啟服務(wù)器

2, 注意:

1) 如果未設(shè)置server_id或者設(shè)置為0,那么主數(shù)據(jù)庫將會(huì)拒絕所有從數(shù)據(jù)庫的連接

2) 如果使用的是innodb存儲(chǔ)引擎,為了獲得更好的持久性與一致性,需要在my.cnf中配置如下選項(xiàng):

? ? ? ? ? ?innodb_flush_log_at_trx_commit=1

? ? ? ? ? ?sync_binlog=1

3) 確保?主數(shù)據(jù)庫skip_networking系統(tǒng)變量為不可用,否則,從服務(wù)器將無法連接主服務(wù)器,導(dǎo)致復(fù)制失敗

3, 創(chuàng)建用于復(fù)制的用戶

? ? ? ? ? ? ? ? ? 新建一個(gè)用戶repl,賦予復(fù)制權(quán)限,專門用于主從復(fù)制。

? ? ? ? ? ? ? ? ??mysql> CREATE USER 'repl'@'%.example.com' IDENTIFIED BY 'password';

? ? ? ? ? ? ? ? ? mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.example.com';

4, 獲取復(fù)制主二進(jìn)制日志坐標(biāo)

? ? ? ? ? ? ? 1),在主庫上新建會(huì)話,鎖定表的寫操作

? ? ? ? ? ? ? ? ? ? ? ?mysql> FLUSH TABLES WITH READ LOCK;

? ? ? ? ? ? ? ? ? ? ? ?警告:發(fā)出鎖操作的客戶機(jī)要保持連接,否則會(huì)釋放鎖。

? ? ? ? ? ? ?2),在主數(shù)據(jù)庫上新建會(huì)話,查詢二進(jìn)制日志文件的名字和位置:

? ? ? ? ? ? ? ? ? ? ??mysql > SHOW MASTER STATUS;

? ? ? ? ? ? ? ? ? ? ? 記下file一欄的名字和position一欄的位置,稍后配置從庫會(huì)用到,如果主數(shù)據(jù)庫沒有在啟用二進(jìn)制日志文件的情況下運(yùn)行,則查詢結(jié)果可能為空,那么在稍后的從庫配置中,名字為‘’空字符串,位置為4

5, 如果主庫已經(jīng)存在數(shù)據(jù)

? ? ? 那么,不要斷開鎖表會(huì)話,然后進(jìn)行下一步

? ? ? 1),新建一個(gè)主庫的快照

? ? ? ? ? ? ? ? ? ? ? ? ?mysqldump--all-databases --master-data > dbdump.db

? ? ? ? ? ? ? ? ? ? ? ? ?如果想忽略某幾個(gè)庫:

? ? ? ? ? ? ? ? ? ? ? ? ?mysqldump --all-databases –ignore-database=db1 –ignore-database=db2 –ignore-database=db3 --master-data > dbdump.db

? ? ? ? ? ? ? ? ? ? ? ? ?如果只想快照某個(gè)數(shù)據(jù)庫db1:

? ? ? ? ? ? ? ? ? ? ? ? ?mysqldump –databases database1 --master-data > dbdump.db

? ? ? ? ? ? ? ? ? ? ? ? ?或者快照某幾個(gè)數(shù)據(jù)庫db1,db2,db3:

? ? ? ? ? ? ? ? ? ? ? ? ??mysqldump –databases db1 db2 db3 --master-data > dbdump.db

? ? ? ? ? ? ? ? 2),導(dǎo)入快照數(shù)據(jù)

? ? ? ? ? ? ? ? ? ? ? ? ?mysql < dbdump.db???

? ? ? ? ? ? ? ? ? ? ? ? ?可以復(fù)制快照文件到從服務(wù)器,或者遠(yuǎn)程訪問該快照文件

二,設(shè)置復(fù)制從數(shù)據(jù)庫,

1, 在主庫上釋放鎖:

? ? ? ? ? ? ? ???mysql> UNLOCK TABLES;

2, 編輯從庫my.cnf,設(shè)置server-id,該id必須是唯一的,不可與主庫或者任何從庫沖突。

? ? ? ? ? ? ? ? ?[mysqld]

? ? ? ? ? ? ? ? ?server-id=2

? ? ? ? ? ? ? ? ?設(shè)置完成,重啟服務(wù)器

3, 注意:

? ? ? ? ? ? ? ? 1)如果將server-id 設(shè)置為0,則從庫為拒絕連接主庫

? ? ? ? ? ? ? ? 2)如果從庫只是作為從庫使用,就不必開啟二進(jìn)制日志,如果從庫繼續(xù)作為二級(jí)主庫,則需要開啟二進(jìn)制日志

? ? ? ? ? ? ? ? 3)復(fù)制不能使用Unix套接字文件。您必須能夠使用TCP/IP連接到主MySQL服務(wù)器

4, 如果從庫沒有快照要導(dǎo)入:

1) 啟動(dòng)從庫并連接

2) 運(yùn)行從庫設(shè)置語句

? ? ? ? ? ? ? ? ??CHANGE MASTER TO

? ? ? ? ? ? ? ? ? MASTER_HOST='master_host_name',

? ? ? ? ? ? ? ? ? MASTER_USER='replication_user_name',

? ? ? ? ? ? ? ? ? MASTER_PASSWORD='replication_password',

? ? ? ? ? ? ? ? ? MASTER_LOG_FILE='recorded_log_file_name',

? ? ? ? ? ? ? ? ? MASTER_LOG_POS=recorded_log_position;

3) 啟動(dòng)從庫

? ? ?Start slave;

5, 如果從庫需要導(dǎo)入快照數(shù)據(jù):

1) 使用如下命令啟動(dòng)從庫

? ? ? ? ? ? ? ? ??mysqld ?--skip-slave-start?&

2) 導(dǎo)入快照:

? ? ? ? ? ? ? ? ? ? ??mysql < dbdump.db??????

3) 運(yùn)行從庫設(shè)置語句:

? ? ? ? ? ? ? ? ? ? ? CHANGE MASTER TO

? ? ? ? ? ? ? ? ? ? ? MASTER_HOST='master_host_name',

? ? ? ? ? ? ? ? ? ? ? MASTER_USER='replication_user_name',

? ? ? ? ? ? ? ? ? ? ? MASTER_PASSWORD='replication_password',

? ? ? ? ? ? ? ? ? ? ? MASTER_LOG_FILE='recorded_log_file_name',

? ? ? ? ? ? ? ? ? ? ? MASTER_LOG_POS=recorded_log_position;

4) 啟動(dòng)從庫

? ? ? ? ? ? ? ? ? ? ? start slave

? ? ? 從屬服務(wù)器在其主信息存儲(chǔ)庫中存儲(chǔ)有關(guān)已配置的主服務(wù)器的信息。主信息存儲(chǔ)庫可以是文件或表的形式,這取決于從庫的系統(tǒng)變量?master_info_repository?設(shè)置

? ? ? 如果master_info_repository=FILE,那么,以文件master.info?和?relay-log.info的形式存在于data目錄

? ? ? 如果master_info_repository=TABLE?,那么,信息存在?master_slave_info表中。

? ? ? 主信息存儲(chǔ)庫的內(nèi)容會(huì)覆蓋命令行或my.cnf中指定的一些服務(wù)器選項(xiàng)。


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

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

AI