十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本文主要給大家介紹MySQL高可用集群講義,希望可以給大家補充和更新些知識,如有其它問題需要了解的可以持續(xù)在創(chuàng)新互聯(lián)行業(yè)資訊里面關(guān)注我的更新文章的。
為和田等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及和田網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、成都做網(wǎng)站、和田網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
mysql高可用集群(mysql-mmm + 主從同步)
主14 <-----> 主13
從11 從12
環(huán)境:
192.168.4.13與192.168.4.14互為主從
192.168.4.11與192.168.4.12為192.168.4.13的從云服務(wù)器
一、配置主從同步
1、對14/13進行主從同步配置
14
1 添加授權(quán)用戶
mysql> grant replication slave on . to slaveuser@"%" identified by "123456";
2 啟用binlog日志
#vim /etc/my,cnf
log-bin=master14
server_id=14
binlog_format="mixed"
3 重啟數(shù)據(jù)庫服務(wù)
#systemctl stop mysqld
#systemctl start mysqld
4 查看日志信息
mysql> show master status
5 使用本機的數(shù)據(jù)庫管理員登陸,指定主庫信息
mysql> change master to master_host="192.168.4.13",
-> master_user="slaveuser",
-> master_password="123456",
-> master_log_file="master13.000001",
-> master_log_pos=154;
mysql> start slave
mysql> show slave status\G
++++++++++++++++++++++++++++++++++++++++++++++++++
13
1 添加授權(quán)用戶
mysql> grant replication slave on . to slaveuser@"%" identified by "123456";
2 啟用binlog日志
#vim /etc/my,cnf
log-bin=master13
server_id=13
binlog_format="mixed"
log_slave_updates
3 重啟數(shù)據(jù)庫服務(wù)
#systemctl stop mysqld
#systemctl start mysqld
4 查看日志信息
mysql> show master status
5 使用本機的數(shù)據(jù)庫管理員登陸,指定主庫信息
mysql> change master to master_host="192.168.4.14",
-> master_user="slaveuser",
-> master_password="123456",
-> master_log_file="master13.000001",
-> master_log_pos=154;
mysql> start slave
mysql> show slave status\G
++++++++++++++++++++++++++++++++++++++++++
將11,12配置為13的從服務(wù)器
11
指定server_id
#vim /etc/my.cnf
server_id=11
重啟數(shù)據(jù)庫服務(wù)
#systemctl stop mysqld
#systemctl start mysqld
使用本機的數(shù)據(jù)庫管理員登陸,指定主庫信息
mysql> change master to master_host="192.168.4.13",
-> master_user="slaveuser",
-> master_password="123456",
-> master_log_file="master13.000001",
-> master_log_pos=154;
mysql> start slave
mysql> show slave status\G
++++++++++++++++++++++++++++++++++++++++++++++
12
指定server_id
#vim /etc/my.cnf
server_id=12
重啟數(shù)據(jù)庫服務(wù)
#systemctl stop mysqld
#systemctl start mysqld
使用本機的數(shù)據(jù)庫管理員登陸,指定主庫信息
mysql> change master to master_host="192.168.4.13",
-> master_user="slaveuser",
-> master_password="123456",
-> master_log_file="master13.000001",
-> master_log_pos=154;
mysql> start slave
mysql> show slave status\G
++++++++++++++++++++++++++++++++++++++++
在客戶端測試
在14主機上添加訪問數(shù)據(jù)的用戶guser,其他3臺主機上也有相同的授權(quán)用戶。
mysql> create database gamedb;
mysql> grant all on gamedb. to guser@"%" identified by "123456";
mysql> select user,host from mysql.user
在客戶端主機使用授權(quán)用戶guser連接14服務(wù)器,產(chǎn)生的新數(shù)據(jù)在其他3臺主機上也有
mysql -h"192.168.4.14" -uguser -p123456
select @@hostname; 查看當(dāng)前訪問的服務(wù)器名
########################################################
二、配置mysql-mmm
1 mysql-mmm介紹
監(jiān)控服務(wù):運行在管理節(jié)點,用來監(jiān)控數(shù)據(jù)節(jié)點
代理服務(wù):運行在數(shù)據(jù)節(jié)點,用來提供系統(tǒng)給監(jiān)控主機
2 在所有主機上安裝mysql-mmm軟件
unzip mysql-mmm.zip
cd mysql-mmm
tar -zxvf mysql-mmm-2.2.1.tar.gz
cd mysql-mmm-2.2.1/
make install
ls /etc/mysql-mmm/.conf
3 修改配置文件
修改數(shù)據(jù)節(jié)點代理服務(wù)配置文件(修改11,12,13,14)
vim //etc/mysql-mmm/mmm_agent.conf
include mmm_common.conf
this db11 //自定義名字
修改管理節(jié)點監(jiān)控服務(wù)的配置文件(修改15)
vim /etc/mysql-mmm/mmm_mon.conf
include mmm_common.conf
ip 192.168.4.15
pid_path /var/run/mmm_mond.pid
bin_path /usr/lib/mysql-mmm/
status_path /var/lib/misc/mmm_mond.status
ping_ips 192.168.4.11, 192.168.4.12, 192.168.4.13, 192.168.4.14
monitor_user monitor
monitor_password 123456
debug 0
修改公共文件
在11上
vim /etc/mysql-mmm/mmm_common.conf
1 active_master_role writer
2
3
4
5 cluster_interface eth0
6
7 pid_path /var/run/mmm_agentd.pid
8 bin_path /usr/lib/mysql-mmm/
9
10 replication_user slaveuser
11 replication_password 123456
12
13 agent_user agent
14 agent_password 123456
15
16
17
18 ip 192.168.4.14
19 mode master
20 peer db13
21
22
23
24 ip 192.168.4.13
25 mode master
26 peer db14
27
28
29
30 ip 192.168.4.12
31 mode slave
32
33
34
35 ip 192.168.4.11
36 mode slave
37
38
39
40 hosts db13, db14
41 ips 192.168.4.100
42 mode exclusive
43
44
45
46 hosts db11, db12
47 ips 192.168.4.101, 192.168.4.102
48 mode balanced
49
scp /etc/mysql-mmm/mmm_common.conf 192.168.4.15:/etc/mysql-mmm/(將公共文件拷貝到12,13,14,15)
根據(jù)配置文件的設(shè)置,在數(shù)據(jù)節(jié)點主機上添加對應(yīng)授權(quán)用戶
grant replication client on . to monitor@"%" identified by "123456";
grant replication client,process,super on . to agent@"%" identified by "123456";
select user,host from mysql.user where user="agent" or user="monitor";
4 啟動服務(wù)
啟動數(shù)據(jù)節(jié)點主機上代理服務(wù):mmm_agent
安裝服務(wù)運行依賴的軟件包 安裝獲取vip地址如那金寶 啟動服務(wù)
在11--14上
15上
啟動管理節(jié)點主機上監(jiān)控服務(wù):mmm_mond
安裝服務(wù)運行依賴的軟件包 啟動服務(wù)
5 驗證mysql-mmm的配置
查看數(shù)據(jù)庫節(jié)點上的數(shù)據(jù)庫服務(wù)是運行的
在監(jiān)控服務(wù)器本機登陸管理
[root@mysql15 ~]# mmm_control show 查看狀態(tài)
(Maybe you should just omit the defined()?)
db11(192.168.4.11) slave/AWAITING_RECOVERY. Roles:
db12(192.168.4.12) slave/AWAITING_RECOVERY. Roles:
db13(192.168.4.13) master/AWAITING_RECOVERY. Roles:
db14(192.168.4.14) master/AWAITING_RECOVERY. Roles:
設(shè)置4臺數(shù)據(jù)庫主機狀態(tài)為online:
在數(shù)據(jù)節(jié)點本機查看是否獲取到vi地址
客戶端連接vip訪問數(shù)據(jù)庫服務(wù)
mysql> select @@hostname;
可通過對11,12,13,14的 stop mysqld服務(wù)來測試虛擬IP的變化
看了以上關(guān)于Mysql高可用集群講義,希望能給大家在實際運用中帶來一定的幫助。本文由于篇幅有限,難免會有不足和需要補充的地方,如有需要更加專業(yè)的解答,可在官網(wǎng)聯(lián)系我們的24小時售前售后,隨時幫您解答問題的。