20多臺(tái)MySQL集群是在大型互聯(lián)網(wǎng)應(yīng)用中非常常見(jiàn)的一種配置。在這樣的集群環(huán)境下,MySQL數(shù)據(jù)庫(kù)可以擁有更高的可用性、更好的性能和更強(qiáng)的容錯(cuò)能力。下面我們來(lái)看一下在Linux系統(tǒng)上如何搭建這樣的集群。
第一步:安裝MySQL軟件
sudo apt-get install mysql-server
第二步:配置MySQL服務(wù)器
#編輯/etc/mysql/my.cnf文件,將如下幾行代碼添加到該文件中
[mysqld]
bind-address=0.0.0.0
server-id=1
log-bin=mysql-bin
binlog-format=ROW
enforce-gtid-consistency=1
第三步:配置主庫(kù)
/*連接到MySQL服務(wù)器*/
mysql -u root -p
/*創(chuàng)建一個(gè)名為replication的賬號(hào),并授予其操作所有表的權(quán)限*/
GRANT ALL PRIVILEGES ON *.* TO 'replication'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
/*查看當(dāng)前MySQL服務(wù)器中的所有binlog*/
SHOW BINARY LOGS;
/*重置主庫(kù)的binlog*/
RESET MASTER;
第四步:配置從庫(kù)
/*連接到MySQL服務(wù)器*/
mysql -u root -p
/*修改從庫(kù)的server-id*/
SET GLOBAL server_id=2;
/*將從庫(kù)連接到主庫(kù)*/
CHANGE MASTER TO
MASTER_HOST='192.168.1.1',
MASTER_USER='replication',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=31905637;
/*啟動(dòng)從庫(kù)復(fù)制*/
START SLAVE;
第五步:測(cè)試MySQL集群的可用性
/*連接到MySQL服務(wù)器*/
mysql -u root -p
/*在主庫(kù)上創(chuàng)建一個(gè)test數(shù)據(jù)庫(kù)和一個(gè)users表*/
CREATE DATABASE test;
USE test;
CREATE TABLE users (id int PRIMARY KEY AUTO_INCREMENT, name varchar(255));
/*在主庫(kù)上添加一條數(shù)據(jù)到users表中*/
INSERT INTO users (name) VALUES ('Alice');
/*在從庫(kù)上查詢users表中的數(shù)據(jù),此時(shí)應(yīng)該能看到剛剛在主庫(kù)上添加的那條數(shù)據(jù)*/
USE test;
SELECT * FROM users;
現(xiàn)在,我們已經(jīng)成功地搭建了一個(gè)20多臺(tái)MySQL數(shù)據(jù)庫(kù)集群環(huán)境,可以實(shí)現(xiàn)高可用性、高性能和容錯(cuò)能力更強(qiáng)的運(yùn)行。