下文我給大家簡單講講關于MySQL中MMM高可用架構的安裝配置流程,大家之前了解過相關類似主題內容嗎?感興趣的話就一起來看看這篇文章吧,相信看完MySQL中MMM高可用架構的安裝配置流程對大家多少有點幫助吧。
創(chuàng)新互聯(lián)公司專注于瀏陽企業(yè)網(wǎng)站建設,響應式網(wǎng)站建設,成都商城網(wǎng)站開發(fā)。瀏陽網(wǎng)站建設公司,為瀏陽等地區(qū)提供建站服務。全流程按需定制開發(fā),專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
主機 | IP地址 |
---|---|
mysql-m1主云服務器 | 192.168.58.131 |
mysql-m2主云服務器 | 192.168.58.136 |
mysql-m3從云服務器 | 192.168.58.146 |
mysql-m4從云服務器 | 192.168.58.147 |
mysql-monitor監(jiān)視代理云服務器 | 192.168.58.148 |
1、在四臺MySQL云服務器上,都安裝MySQL,過程省略
2、配置ALI云源,然后安裝epel-rlease源,為了下面安裝mysql-mmm工具套件。
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@localhost ~]# yum -y install epel-release [root@localhost ~]# yum clean all && yum makecache
3、配置修改m1主配置文件。
vim /etc/my.cnf [mysqld] log_error=/var/lib/mysql/mysql.err #配置錯誤日志 log=/var/lib/mysql/mysql_log.log #配置常用日志 log_slow_queries=/var/lib/mysql_slow_queris.log #配置慢日志 binlog-ignore-db=mysql,information_schema #配置不需要記錄二進制日志的數(shù)據(jù)庫 character_set_server=utf8 #配置字符集 log_bin=mysql_bin #開啟binlog日志用于主從數(shù)據(jù)復制 server_id=1 #每臺server-id的值不能一樣 log_slave_updates=true #此數(shù)據(jù)庫宕機,備用數(shù)據(jù)庫接管 sync_binlog=1 #允許同步二進制日志 auto_increment_increment=2 #字段依次遞增多少 auto_increment_offset=1 #自增字段的起始值:1、3、5等奇數(shù)ID
配置沒問題后,把配置文件復制到另外一臺主云服務器
[root@localhost ~]# scp /etc/my.cnf root@192.168.58.136:/etc/
4、配置mysql-m1、mysql-m2主主模式
首先查看log bin日志和pos值的位置。
[root@localhost1 ~]# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 1065 Server version: 5.5.24-log Source distribution Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]> show master status; +------------------+----------+--------------+--------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+--------------------------+ | mysql_bin.000002 | 107 | | mysql,information_schema | +------------------+----------+--------------+--------------------------+ 1 row in set (0.00 sec) [root@localhost2 ~]# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 1065 Server version: 5.5.24-log Source distribution Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]> show master status; +------------------+----------+--------------+--------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+--------------------------+ | mysql_bin.000002 | 107 | | mysql,information_schema | +------------------+----------+--------------+--------------------------+ 1 row in set (0.00 sec)
然后,mysql-m1、mysql-m2互相提升訪問權限。
mysql-m1 MySQL [(none)]> grant replication slave on *.* to 'replication'@'192.168.58.%' identified by '123456'; MySQL [(none)]> change master to master_host='192.168.58.136',master_user='replication',master_password='123456',master_log_file='mysql_bin.000002',master_log_pos=107; MySQL [(none)]> flush privileges; mysql-m2 MySQL [(none)]> grant replication slave on *.* to 'replication'@'192.168.58.%' identified by '123456'; MySQL [(none)]> change master to master_host='192.168.58.131',master_user='replication',master_password='123456',master_log_file='mysql_bin.000002',master_log_pos=107; MySQL [(none)]> flush privileges;
最后分別查看mysql-m1、mysql-m2云服務器的主從狀態(tài),主要查看
Slave_IO_Running: Yes
Slave_SQL_Running: Yes。
MySQL [(none)]> start slave; MySQL [(none)]> show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.58.131 Master_User: replication Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql_bin.000002 Read_Master_Log_Pos: 107 Relay_Log_File: localhost-relay-bin.000012 Relay_Log_Pos: 253 Relay_Master_Log_File: mysql_bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes
說明主主同步配置成功。
測試主主同步,在mysql-m1新建一個庫test01
mysql-m1 MySQL [(none)]> create database test01; MySQL [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | #mysql50#.mozilla | | bbs | | mysql | | performance_schema | | test | | test01 | +--------------------+ 7 rows in set (0.22 sec) mysql-m2 #測試成功 MySQL [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | #mysql50#.mozilla | | mysql | | performance_schema | | test | | test01 | +--------------------+ 7 rows in set (0.22 sec)
5、配置myqsl-m3、mysql-m4作為mysql-m1的從庫。
首先將mysql-m1上的/etc/my.cnf文件,復制到myqsl-m3、mysql-m4兩臺云服務器上。
mysql-m1 [root@localhost ~]# scp /etc/my.cnf root@192.168.58.146:/etc/ [root@localhost ~]# scp /etc/my.cnf root@192.168.58.147:/etc/
查看mysql-m1中數(shù)據(jù)庫的狀態(tài)值。
MySQL [(none)]> show master status; +------------------+----------+--------------+--------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+--------------------------+ | mysql_bin.000002 | 107 | | mysql,information_schema | +------------------+----------+--------------+--------------------------+ 1 row in set (0.00 sec)
在mysql-m3、mysql-m4上分別執(zhí)行。
mysql-m3 MySQL [(none)]> change master to master_host='192.168.58.131',master_user='replication',master_password='123456',master_log_file='mysql_bin.000002',master_log_pos=107; mysql-m4 MySQL [(none)]> change master to master_host='192.168.58.131',master_user='replication',master_password='123456',master_log_file='mysql_bin.000002',master_log_pos=107;
分別查看mysql-m3、mysql-m4云服務器的主從狀態(tài),如下所示。
MySQL [(none)]> show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.58.131 Master_User: replication Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql_bin.000002 Read_Master_Log_Pos: 107 Relay_Log_File: localhost-relay-bin.000012 Relay_Log_Pos: 253 Relay_Master_Log_File: mysql_bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes
CentOS默認沒有mysql-mmm軟件包,由于之前我們epel官方源已經(jīng)安裝好,在五臺主機上都要安裝MMM
[root@localhost ~]# yum -y install mysql-mmm*
安裝完后,對MMM進行配置
[root@localhost MongoDB1]# vim /etc/mysql-mmm/mmm_common.confcluster_interface ens33 #網(wǎng)卡名稱 …… replication_user replication replication_password 123456 agent_user mmm_agent agent_password 123456 ip 192.168.58.131 mode master peer db2 ip 192.168.58.136 mode master peer db1 ip 192.168.58.146 mode slave ip 192.168.58.147 mode slave hosts db1, db2 ips 192.168.58.100 mode exclusive hosts db3, db4 ips 192.168.58.200, 192.168.58.210 mode balanced #將配置文件復制到其他幾臺數(shù)據(jù)庫云服務器對應的目錄下 [root@localhost mysql-mmm]# scp mmm_common.conf root@192.168.58.136:/etc/mysql-mmm/ [root@localhost mysql-mmm]# scp mmm_common.conf root@192.168.58.146:/etc/mysql-mmm/ [root@localhost mysql-mmm]# scp mmm_common.conf root@192.168.58.147:/etc/mysql-mmm/ [root@localhost mysql-mmm]# scp mmm_common.conf root@192.168.58.148:/etc/mysql-mmm/
在作為monitor云服務器的終端上配置
cd /etc/mysql-mmm/ #改密碼 vim mmm_mon.confmonitor_user mmm_monitor monitor_password 123456
在所有數(shù)據(jù)庫上為mmm_agent授權
MySQL [(none)]> grant super, replication client, process on *.* to 'mmm_agent'@'192.168.58.%' identified by '123456'; #為mmm_agent授權
在所有數(shù)據(jù)庫上為mmm_moniter授權
MySQL [(none)]> grant replication client on *.* to 'mmm_monitor'@'192.168.58.%' identified by '123456'; #為mmm_monitor授權 MySQL [(none)]> flush privileges #刷新權限設置
修改所有數(shù)據(jù)庫的mmm_agent.conf
[root@localhost mysql-mmm]# vim /etc/mysql-mmm/mmm_agent.conf include mmm_common.conf # The 'this' variable refers to this server. Proper operation requires # that 'this' server (db1 by default), as well as all other servers, have the # proper IP addresses set in mmm_common.conf. this db1 #分別在四臺數(shù)據(jù)庫云服務器上設置為db1,db2,db3,db4 ~
在所有數(shù)據(jù)庫云服務器上啟動mysql-mmm-agent
[root@localhost mysql-mmm]# systemctl start mysql-mmm-agent.service #啟動mmm-agent服務 [root@localhost mysql-mmm]# systemctl enable mysql-mmm-agent.service #設置mmm-agent服務開機啟動
在monitor云服務器上配置
[root@localhost mysql-mmm]# cd /etc/mysql-mmm/ [root@localhost mysql-mmm]# vim mmm_mon.confip 127.0.0.1 pid_path /run/mysql-mmm-monitor.pid bin_path /usr/libexec/mysql-mmm status_path /var/lib/mysql-mmm/mmm_mond.status ping_ips 192.168.58.131,192.168.58.136,192.168.58.146,192.168.58.147 #指定監(jiān)管的云服務器IP地址 auto_set_online 10 # The kill_host_bin does not exist by default, though the monitor will # throw a warning about it missing. See the section 5.10 "Kill Host # Functionality" in the PDF documentation. # # kill_host_bin /usr/libexec/mysql-mmm/monitor/kill_host # monitor_user mmm_monitor #設置監(jiān)管賬戶 monitor_password 123456 #設置監(jiān)管密碼 [root@localhost mysql-mmm]# systemctl start mysql-mmm-monitor.service #啟動mysql-mmm-monitor [root@localhost mysql-mmm]# mmm_control show #查看節(jié)點運行情況 db1(192.168.58.131) master/ONLINE. Roles: writer(192.168.58.100) db2(192.168.58.136) master/ONLINE. Roles: db3(192.168.58.146) slave/ONLINE. Roles: reader(192.168.58.200) db4(192.168.58.147) slave/ONLINE. Roles: reader(192.168.58.210)
當我們把mysql-m3的mysql服務停掉以后,對應的VIP會自動綁定到mysql-m4上
[root@localhost mysql-mmm]# mmm_control show db1(192.168.58.131) master/ONLINE. Roles: writer(192.168.58.100) db2(192.168.58.136) master/ONLINE. Roles: db3(192.168.58.146) slave/HARD_OFFLINE. Roles:db4(192.168.58.147) slave/ONLINE. Roles: reader(192.168.58.210)(192.168.58.200)
大家覺得MySQL中MMM高可用架構的安裝配置流程這篇文章怎么樣,是否有所收獲。如果想要了解更多相關,可以繼續(xù)關注我們的行業(yè)資訊板塊。