新聞中心
mysql復(fù)制是一個允許來自一個數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)自動復(fù)制到一個或多個服務(wù)器的過程。

創(chuàng)新互聯(lián)是少有的成都網(wǎng)站設(shè)計、網(wǎng)站制作、營銷型企業(yè)網(wǎng)站、微信小程序定制開發(fā)、手機APP,開發(fā)、制作、設(shè)計、買友情鏈接、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,于2013年開始,堅持透明化,價格低,無套路經(jīng)營理念。讓網(wǎng)頁驚喜每一位訪客多年來深受用戶好評
MySQL支持許多復(fù)制拓?fù)?,其中?從拓?fù)涫且粋€最著名的拓?fù)渲?,其中一個數(shù)據(jù)庫服務(wù)器充當(dāng)主服務(wù)器,而一個或多個服務(wù)器充當(dāng)從服務(wù)器。默認(rèn)情況下,復(fù)制是異步的,其中主服務(wù)器將描述數(shù)據(jù)庫修改的事件發(fā)送到其二進(jìn)制日志,并且從服務(wù)器在準(zhǔn)備好時請求事件。
此類復(fù)制拓?fù)渥钸m合部署用于讀取擴展的只讀副本,用于災(zāi)難恢復(fù)和分析作業(yè)的實時數(shù)據(jù)庫備份。
必要條件
此示例假設(shè)您有兩臺運行ubuntu 18.04的服務(wù)器,它們可以通過專用網(wǎng)絡(luò)相互通信。如果您的托管服務(wù)提供商不提供私有IP地址,您可以使用公共IP地址并配置防火墻,以允許端口3306上的流量僅來自可信來源。
此示例中的服務(wù)器具有以下IP:
Master IP(主服務(wù)器IP): 192.168.100.190
Slave IP(從服務(wù)器IP): 192.168.100.236
安裝MySQL
默認(rèn)的Ubuntu 18.04存儲庫包含MySQL 5.7版。 為避免出現(xiàn)任何問題,最好在兩臺服務(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è)置為偵聽專用IP
- 設(shè)置唯一的服務(wù)器ID
- 啟用二進(jìn)制日志記錄
為此,請打開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
完成后,重新啟動MySQL服務(wù)以使更改生效
sudo systemctl restart mysql
下一步是創(chuàng)建一個新的復(fù)制用戶。 鍵入以下內(nèi)容以root用戶身份登錄MySQL服務(wù)器:
sudo mysql
在MySQL提示符內(nèi),運行以下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';
確保使用從屬IP地址更改IP。 您可以根據(jù)需要為用戶命名。
在仍然在MySQL提示符內(nèi)時,執(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ù)器時,您將需要這些值。 您的服務(wù)器上的這些值可能會有所不同。
配置從屬服務(wù)器
與上面的主服務(wù)器一樣,我們將對從服務(wù)器進(jìn)行以下更改:
- 將MySQL服務(wù)器設(shè)置為偵聽專用IP
- 設(shè)置唯一的服務(wù)器ID
- 啟用二進(jìn)制日志記錄
打開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;
運行以下查詢,該查詢將設(shè)置從服務(wù)器來復(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地址,用戶名。 和密碼。 日志文件名稱和位置必須與從主服務(wù)器獲取的值相同。
完成后,啟動從線程。
START SLAVE;
測試配置
此時,您應(yīng)該有一個正常工作的主/從復(fù)制設(shè)置。
要驗證一切是否按預(yù)期工作,我們將在主服務(wù)器上創(chuàng)建一個新數(shù)據(jù)庫:
sudo mysql
CREATE DATABASE replicatest;
登錄到從屬MySQL shell:
sudo mysql
列出數(shù)據(jù)庫:
SHOW DATABASES;
您會注意到在主服務(wù)器上創(chuàng)建的數(shù)據(jù)庫是在從服務(wù)器上復(fù)制的:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| replicatest |
| sys |
+--------------------+
5 rows in set (0.00 sec)
總結(jié)
如果您有任何疑問,請隨時發(fā)表評論。
網(wǎng)站題目:如何在Ubuntu18.04上配置MySQL主從復(fù)制
文章鏈接:http://m.fisionsoft.com.cn/article/cogdesd.html


咨詢
建站咨詢
