MySQL是一種強大的關(guān)系型數(shù)據(jù)庫,經(jīng)常用于各種網(wǎng)站和應(yīng)用程序的開發(fā)。在高可用性的環(huán)境下,建立MySQL數(shù)據(jù)庫的主備系統(tǒng)仍然是一種明智的決策。本文將介紹如何建立MySQL數(shù)據(jù)庫的主備系統(tǒng)。
首先,讓我們開始設(shè)置主服務(wù)器。在主服務(wù)器上安裝MySQL,并配置它的my.cnf文件。將以下配置添加到主服務(wù)器的my.cnf文件中:
log_bin = /var/log/mysql/mysql-bin.log server-id = 1 binlog-do-db = dbname
此配置決定MySQL服務(wù)器記錄二進制日志的方式,設(shè)置服務(wù)器ID并指定要寫入二進制日志的數(shù)據(jù)庫。
接下來,在主服務(wù)器上創(chuàng)建用于同步的用戶,并授予適當(dāng)?shù)臋?quán)限。假設(shè)我們將用戶名設(shè)置為“replicant” ,密碼設(shè)置為“ABCxyz” 。在MySQL命令行中執(zhí)行以下操作:
CREATE USER 'replicant'@'slave_ip_address' IDENTIFIED BY 'ABCxyz'; GRANT REPLICATION SLAVE ON *.* TO 'replicant'@'slave_ip_address';
此配置創(chuàng)建一個新用戶,并授予REPLICATION SLAVE權(quán)限。'slave_ip_address'指定從服務(wù)器的IP地址。
現(xiàn)在,我們可以開始配置從服務(wù)器。在從服務(wù)器上安裝MySQL,并配置它的my.cnf文件。將以下配置添加到從服務(wù)器的my.cnf文件中:
server-id = 2 relay-log = /var/lib/mysql/mysql-relay-bin.log log_bin = /var/lib/mysql/mysql-bin.log binlog-do-db = dbname
此配置設(shè)置從服務(wù)器的服務(wù)器ID以及與主服務(wù)器相同的binlog-do-db選項。
最后,在從服務(wù)器上執(zhí)行以下命令開始同步:
CHANGE MASTER TO MASTER_HOST='master_ip_address', MASTER_USER='replicant', MASTER_PASSWORD='ABCxyz', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS= 107; START SLAVE;
此配置使從服務(wù)器將日志流復(fù)制到主服務(wù)器。'master_ip_address'指定主服務(wù)器的IP地址,'replicant','ABCxyz','mysql-bin.000001'及其POS指定主服務(wù)器中要復(fù)制的二進制日志文件。
這樣,我們就成功地建立了MySQL數(shù)據(jù)庫的主備系統(tǒng)。現(xiàn)在,即使主服務(wù)器出現(xiàn)故障,從服務(wù)器也可以接管并繼續(xù)服務(wù)。