新聞中心
搭建MySQL分布式集群需要使用MySQL Cluster技術(shù),首先安裝管理節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn),然后配置集群參數(shù),最后啟動(dòng)集群并進(jìn)行測(cè)試。
搭建MySQL分布式集群需要以下幾個(gè)步驟:

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的波密網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
1、準(zhǔn)備硬件環(huán)境
2、安裝MySQL數(shù)據(jù)庫
3、配置MySQL主從復(fù)制
4、安裝和配置ProxySQL
5、測(cè)試集群功能
1. 準(zhǔn)備硬件環(huán)境
為了搭建一個(gè)MySQL分布式集群,我們需要至少3臺(tái)服務(wù)器,其中一臺(tái)作為主服務(wù)器(Master),另外兩臺(tái)作為從服務(wù)器(Slave),這里假設(shè)我們已經(jīng)準(zhǔn)備好了3臺(tái)服務(wù)器,它們的IP地址分別為:
主服務(wù)器:192.168.1.1
從服務(wù)器1:192.168.1.2
從服務(wù)器2:192.168.1.3
2. 安裝MySQL數(shù)據(jù)庫
在3臺(tái)服務(wù)器上分別安裝MySQL數(shù)據(jù)庫,這里以Ubuntu系統(tǒng)為例,使用以下命令安裝:
sudo aptget update sudo aptget install mysqlserver
安裝完成后,登錄MySQL,修改root用戶的密碼:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
3. 配置MySQL主從復(fù)制
3.1 配置主服務(wù)器
編輯主服務(wù)器的/etc/mysql/mysql.conf.d/mysqld.cnf文件,添加以下內(nèi)容:
[mysqld] serverid=1 logbin=mysqlbin binlogformat=mixed
重啟MySQL服務(wù):
sudo service mysql restart
創(chuàng)建用于復(fù)制的用戶:
CREATE USER 'repl'@'%' IDENTIFIED BY 'repl_password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES;
查看主服務(wù)器狀態(tài):
SHOW MASTER STATUS;
記下File和Position的值,稍后在從服務(wù)器上配置時(shí)需要用到。
3.2 配置從服務(wù)器
編輯從服務(wù)器的/etc/mysql/mysql.conf.d/mysqld.cnf文件,添加以下內(nèi)容:
[mysqld] serverid=2 relaylog=relaylog
重啟MySQL服務(wù):
sudo service mysql restart
在從服務(wù)器上配置主服務(wù)器信息:
CHANGE MASTER TO MASTER_HOST='192.168.1.1', MASTER_USER='repl', MASTER_PASSWORD='repl_password', MASTER_LOG_FILE='之前記錄的File值', MASTER_LOG_POS=之前記錄的Position值;
啟動(dòng)從服務(wù)器上的復(fù)制進(jìn)程:
START SLAVE;
查看從服務(wù)器狀態(tài),確保復(fù)制正常:
SHOW SLAVE STATUS\G;
4. 安裝和配置ProxySQL
在一臺(tái)新的服務(wù)器上安裝ProxySQL,用于負(fù)載均衡和故障轉(zhuǎn)移,這里以Ubuntu系統(tǒng)為例,使用以下命令安裝:
wget https://repo.proxysql.com/ProxySQL2.0.131ubuntu18.04.x86_64.sh chmod +x ProxySQL2.0.131ubuntu18.04.x86_64.sh sudo ./ProxySQL2.0.131ubuntu18.04.x86_64.sh
安裝完成后,編輯/etc/proxysql.cnf文件,添加以下內(nèi)容:
mysql_user: proxysql mysql_password: proxysql_password
重啟ProxySQL服務(wù):
sudo service proxysql restart
登錄ProxySQL管理界面:
mysql uadmin padmin h127.0.0.1 P6032 prompt='ProxySQL> '
添加主服務(wù)器和從服務(wù)器的信息:
INSERT INTO global_variables (variable_name, variable_value) VALUES('mysqlmaster.hostgroups', 'group1');
INSERT INTO global_variables (variable_name, variable_value) VALUES('mysqlmaster.load_balance', 'ON');
INSERT INTO global_variables (variable_name, variable_value) VALUES('mysqlmaster.failover_on_error', 'OFF');
INSERT INTO global_variables (variable_name, variable_value) VALUES('mysqlslave.read_only', 'ON');
INSERT INTO global_variables (variable_name, variable_value) VALUES('mysqlslave.ignore_auto_incr', 'ON');
INSERT INTO global_variables (variable_name, variable_value) VALUES('mysqlslave.net_write_timeout', '10000');
INSERT INTO global_variables (variable_name, variable_value) VALUES('mysqlslave.net_read_timeout', '10000');
添加主服務(wù)器和從服務(wù)器的訪問信息:
INSERT INTO mysql_servers (hostname, port, username, password, weight) VALUES('192.168.1.1', 3306, 'root', 'your_password', 1);
INSERT INTO mysql_servers (hostname, port, username, password, weight) VALUES('192.168.1.2', 3306, 'root', 'your_password', 1);
INSERT INTO mysql_servers (hostname, port, username, password, weight) VALUES('192.168.1.3', 3306, 'root', 'your_password', 1);
創(chuàng)建用戶和訪問權(quán)限:
INSERT INTO users (username, password, preferred_hostgroup, hostgroup) VALUES('client', 'client_password', 'group1', 'group1');
INSERT INTO mysql_query_rules (rule_id, active, source_hostgroup, target_hostgroup, sql_pattern, replacement_pattern) VALUES(1, 'Y', 'group1', 'group1', 'SELECT @@GLOBAL\\.GTID_EXECUTED', '');
INSERT INTO mysql_query_rules (rule_id, active, source_hostgroup, target_hostgroup, sql_pattern, replacement_pattern) VALUES(2, 'Y', 'group1', 'group1', 'BINLOG_WAIT_EVENT', '');
INSERT INTO mysql_query_rules (rule_id, active, source_hostgroup, target_hostgroup, sql_pattern, replacement_pattern) VALUES(3, 'Y', 'group1', 'group1', 'BINLOG_CHECKPOINT', '');
INSERT INTO mysql_query_rules (rule_id, active, source_hostgroup, target_hostgroup, sql_pattern, replacement_pattern) VALUES(4, 'Y', 'group1', 'group1', 'RESET MASTER', '');
INSERT INTO mysql_query_rules (rule_id, active, source_hostgroup, target_hostgroup, sql_pattern, replacement_pattern) VALUES(5, 'Y', 'group1', 'group1', 'SHOW MASTER STATUS', '');
INSERT INTO mysql_query_rules (rule_id, active, source_hostgroup, target_hostgroup, sql_pattern, replacement_pattern) VALUES(6, 'Y', 'group1', 'group1', 'START MASTER', '');
INSERT INTO mysql_query_rules (rule_id, active, source_hostgroup, target_hostgroup, sql_pattern, replacement_pattern) VALUES(7, 'Y', 'group1', 'group1', 'STOP MASTER', '');
INSERT INTO mysql_query_rules (rule_id, active, source_hostgroup, target_hostgroup, sql_pattern, replacement_pattern) VALUES(8, 'Y', 'group1', 'group1', 'SHOW SLAVE STATUS', '');
INSERT INTO mysql_query_rules (rule_id, active, source_hostgroup, target_hostgroup, sql_pattern, replacement_pattern) VALUES(9, 'Y', 'group1', 'group1', 'SHOW BINARY LOGS', '');
重啟ProxySQL服務(wù):
sudo service proxysql
本文名稱:mysql分布式集群怎么搭建
URL分享:http://www.dlmjj.cn/article/cdoisje.html


咨詢
建站咨詢
