新聞中心
mysql復(fù)制是一個(gè)允許來(lái)自一個(gè)數(shù)據(jù)庫(kù)服務(wù)器的數(shù)據(jù)自動(dòng)復(fù)制到一個(gè)或多個(gè)服務(wù)器的過(guò)程。

創(chuàng)新互聯(lián)是少有的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、營(yíng)銷(xiāo)型企業(yè)網(wǎng)站、微信小程序定制開(kāi)發(fā)、手機(jī)APP,開(kāi)發(fā)、制作、設(shè)計(jì)、買(mǎi)友情鏈接、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,于2013年開(kāi)始,堅(jiān)持透明化,價(jià)格低,無(wú)套路經(jīng)營(yíng)理念。讓網(wǎng)頁(yè)驚喜每一位訪客多年來(lái)深受用戶好評(píng)
MySQL支持許多復(fù)制拓?fù)洌渲兄?從拓?fù)涫且粋€(gè)最著名的拓?fù)渲?,其中一個(gè)數(shù)據(jù)庫(kù)服務(wù)器充當(dāng)主服務(wù)器,而一個(gè)或多個(gè)服務(wù)器充當(dāng)從服務(wù)器。默認(rèn)情況下,復(fù)制是異步的,其中主服務(wù)器將描述數(shù)據(jù)庫(kù)修改的事件發(fā)送到其二進(jìn)制日志,并且從服務(wù)器在準(zhǔn)備好時(shí)請(qǐng)求事件。
此類(lèi)復(fù)制拓?fù)渥钸m合部署用于讀取擴(kuò)展的只讀副本,用于災(zāi)難恢復(fù)和分析作業(yè)的實(shí)時(shí)數(shù)據(jù)庫(kù)備份。
必要條件
此示例假設(shè)您有兩臺(tái)運(yùn)行ubuntu 18.04的服務(wù)器,它們可以通過(guò)專(zhuān)用網(wǎng)絡(luò)相互通信。如果您的托管服務(wù)提供商不提供私有IP地址,您可以使用公共IP地址并配置防火墻,以允許端口3306上的流量?jī)H來(lái)自可信來(lái)源。
此示例中的服務(wù)器具有以下IP:
Master IP(主服務(wù)器IP): 192.168.100.190
Slave IP(從服務(wù)器IP): 192.168.100.236
安裝MySQL
默認(rèn)的Ubuntu 18.04存儲(chǔ)庫(kù)包含MySQL 5.7版。 為避免出現(xiàn)任何問(wèn)題,最好在兩臺(tái)服務(wù)器上安裝相同的MySQL版本。
在Master服務(wù)器上安裝MySQL:
sudo apt-get update
sudo apt-get install mysql-server
使用相同的命令在Slave服務(wù)器上安裝MySQL:
sudo apt-get update
sudo apt-get install mysql-server
配置主服務(wù)器
第一步是配置主MySQL服務(wù)器。 我們將進(jìn)行以下更改:
- 將MySQL服務(wù)器設(shè)置為偵聽(tīng)專(zhuān)用IP
- 設(shè)置唯一的服務(wù)器ID
- 啟用二進(jìn)制日志記錄
為此,請(qǐng)打開(kāi)MySQL配置文件并取消注釋或設(shè)置以下內(nèi)容:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
master:/etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 192.168.100.190
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
完成后,重新啟動(dòng)MySQL服務(wù)以使更改生效
sudo systemctl restart mysql
下一步是創(chuàng)建一個(gè)新的復(fù)制用戶。 鍵入以下內(nèi)容以root用戶身份登錄MySQL服務(wù)器:
sudo mysql
在MySQL提示符內(nèi),運(yùn)行以下SQL查詢,這些查詢將創(chuàng)建副本用戶并向用戶授予REPLICATION SLAVE權(quán)限:
CREATE USER 'replica'@'192.168.100.236' IDENTIFIED BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.100.236';
確保使用從屬I(mǎi)P地址更改IP。 您可以根據(jù)需要為用戶命名。
在仍然在MySQL提示符內(nèi)時(shí),執(zhí)行以下命令將打印二進(jìn)制文件名和位置。
SHOW MASTER STATUS\G
輸出:
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 629
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
記下文件名'mysql-bin.000001'和位置'629'。 配置從屬服務(wù)器時(shí),您將需要這些值。 您的服務(wù)器上的這些值可能會(huì)有所不同。
配置從屬服務(wù)器
與上面的主服務(wù)器一樣,我們將對(duì)從服務(wù)器進(jìn)行以下更改:
- 將MySQL服務(wù)器設(shè)置為偵聽(tīng)專(zhuān)用IP
- 設(shè)置唯一的服務(wù)器ID
- 啟用二進(jìn)制日志記錄
打開(kāi)MySQL配置文件并編輯以下行:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
slave:/etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 192.168.100.236
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
重啟MySQL服務(wù):
sudo systemctl restart mysql
下一步是配置從服務(wù)器用于連接主服務(wù)器的參數(shù)。 登錄MySQL shell:
sudo mysql
首先,停止slave線程:
STOP SLAVE;
運(yùn)行以下查詢,該查詢將設(shè)置從服務(wù)器來(lái)復(fù)制主服務(wù)器:
CHANGE MASTER TO
MASTER_HOST='192.168.100.190',
MASTER_USER='replica',
MASTER_PASSWORD='replica_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=629;
確保使用正確的IP地址,用戶名。 和密碼。 日志文件名稱(chēng)和位置必須與從主服務(wù)器獲取的值相同。
完成后,啟動(dòng)從線程。
START SLAVE;
測(cè)試配置
此時(shí),您應(yīng)該有一個(gè)正常工作的主/從復(fù)制設(shè)置。
要驗(yàn)證一切是否按預(yù)期工作,我們將在主服務(wù)器上創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù):
sudo mysql
CREATE DATABASE replicatest;
登錄到從屬M(fèi)ySQL shell:
sudo mysql
列出數(shù)據(jù)庫(kù):
SHOW DATABASES;
您會(huì)注意到在主服務(wù)器上創(chuàng)建的數(shù)據(jù)庫(kù)是在從服務(wù)器上復(fù)制的:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| replicatest |
| sys |
+--------------------+
5 rows in set (0.00 sec)
總結(jié)
如果您有任何疑問(wèn),請(qǐng)隨時(shí)發(fā)表評(píng)論。
文章名稱(chēng):如何在Ubuntu18.04上配置MySQL主從復(fù)制
網(wǎng)站路徑:http://www.5511xx.com/article/cogdesd.html


咨詢
建站咨詢
