部署集羣基礎環境

1.部署集羣基礎環境
問題
本案例要求爲MySQL集羣準備基礎環境,完成以下任務操作:
數據庫授權
部署MySQL雙主多從結構
配置本機hosts解析記錄
方案
使用4臺RHEL 6虛擬機,如圖-1所示。其中192.168.4.10、192.168.4.11作爲MySQL雙主服務器,192.168.4.12、192.168.4.13作爲主服務器的從服務器。
在這裏插入圖片描述
圖-1
步驟
實現此案例需要按照如下步驟進行。
步驟一:準備環境
1)安裝6臺RHEL6.4虛擬機,配置好YUM,關閉SELinux、Iptables、NetworkManager服務並禁止該開機自動啓動(所有主機操作)
2)配置各主機IP地址和主機名
3)配置本地/etc/hosts配置文件實現基於主機名的解析(所有主機操作)
樣例配置如下
[root@master1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.4.10 master1 master1.tarena.com
192.168.4.11 master2 master2.tarena.com
192.168.4.12 slave1 slave1.tarena.com
192.168.4.13 slave2 slave2.tarena.com
192.168.4.100 master1 master1.tarena.com

[root@master1 ~]# ping -c 2 master1
PING master1 (192.168.4.10) 56(84) bytes of data.
64 bytes from master1 (192.168.4.10): icmp_seq=1 ttl=64 time=0.378 ms
64 bytes from master1 (192.168.4.10): icmp_seq=2 ttl=64 time=0.396 ms

— master1 ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.378/0.387/0.396/0.009 ms
[root@master1 ~]#
步驟二:部署數據庫主機
1)安裝啓動數據庫(4臺數據庫主機master1,master2,slave1,slave2執行以下操作)
[root@master1 ~]# tar xvf MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar //解壓軟件包
… …
[root@master1 ~]# rpm -Uvh MySQL-*.rpm //安裝MySQL
… …
[root@master1 ~]# service mysql start
Starting MySQL. [確定]
2)初始化配置數據庫(4臺數據庫主機master1,master2,slave1,slave2執行以下操作)
[root@master1 ~]# cat /root/.mysql_secret //查看隨機生成密碼

The random password set for the root user at Thu May 7 22:15:47 2015 (local time): wW1BNAjD

[root@master1 ~]# mysql -uroot -pwW1BNAjD //使用隨機生成密碼登陸
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.15

Copyright © 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> set password=password(“pwd123”); //修改數據庫root密碼
Query OK, 0 rows affected (0.49 sec)

mysql> exit
Bye
[root@master1 ~]#
步驟三:部署雙主多從結構
1)數據庫授權(4臺數據庫主機master1,master2,slave1,slave2執行以下操作)
部署主從同步只需要授權一個主從同步用戶即可,但是我們要部署MySQL-MMM架構,所以在這裏我們將MySQL-MMM所需用戶一併進行授權設置。再授權一個測試用戶,在架構搭建完成時測試使用。
[root@master1 ~]# mysql -uroot -ppwd123
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.15 MySQL Community Server (GPL)

Copyright © 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

數據庫授權部分爲了方便試驗我們直接允許所有地址訪問了,真實環境需謹慎
mysql> grant replication slave on . to slaveuser@"%" identified by “pwd123”; //主從同步授權
Query OK, 0 rows affected (0.00 sec)

mysql> grant replication client on . to monitor@"%" identified by “monitor”; //MMM所需架構用戶授權
Query OK, 0 rows affected (0.06 sec)

mysql> grant replication client,process,super on . to agent@"%" identified by “agent”; //MMM所需架構用戶授權
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on . to root@"%" identified by “pwd123”; //測試用戶授權
Query OK, 0 rows affected (0.00 sec)

mysql>
2)開啓主數據庫binlog日誌、設置server_id(master1,master2)
master1設置:
[root@master1 ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
server_id=10 //設置server_id,該值集羣中不可以重複
log-bin //開啓bin-log日誌

Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[root@master1 ~]# service mysql restart //重啓MySQL服務
Shutting down MySQL… [確定]
Starting MySQL… [確定]
[root@master1 ~]# ls /var/lib/mysql/master1-bin* //查看binlog日誌是否生成
/var/lib/mysql/master1-bin.000001 /var/lib/mysql/master1-bin.index
[root@master1 ~]#
master2設置:
[root@master2 ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
server_id=11
log-bin

Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[root@master2 ~]# service mysql restart
Shutting down MySQL… [確定]
Starting MySQL. [確定]
[root@master2 ~]# ls /var/lib/mysql/master2-bin.*
/var/lib/mysql/master2-bin.000001 /var/lib/mysql/master2-bin.index
3)從庫設置server_id
slave1設置:
[root@slave1 ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
server_id=12

Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[root@slave1 ~]# service mysql restart
Shutting down MySQL… [確定]
Starting MySQL… [確定]
[root@slave1 ~]#
slave2設置:
[root@slave2 ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
server_id=13

Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[root@slave2 ~]# service mysql restart
Shutting down MySQL… [確定]
Starting MySQL. [確定]
[root@slave2 ~]#
4)配置主從從從關係
配置master2、slave1、slave2成爲master1的從服務器
查看master1服務器binlong日誌使用節點信息:
[root@master1 ~]# mysql -uroot -ppwd123
… …
mysql> show master status\G
*************************** 1. row ***************************
File: master1-bin.000001
Position: 120
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)

mysql>
設置master2爲master1從:
[root@master2 ~]# mysql -uroot -ppwd123
… …
mysql> change master to //設置主服務器信息
-> master_host=“192.168.4.10”, //設置主服務器IP地址
-> master_user=“slaveuser”, //設置主從同步用戶
-> master_password=“pwd123”, //設置主從同步密碼
-> master_log_file=“master1-bin.000001”, //設置主庫binlog日誌名稱
-> master_log_pos=120; //設置主從binlog日誌使用節點
Query OK, 0 rows affected, 2 warnings (0.06 sec)

mysql> start slave; //啓動同步進程
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G //查看主從是否成功
… …
啓動同步進程後查看IO節點和SQL節點是否爲Yes如果均爲Yes表示主從正常。
Slave_IO_Running: Yes //IO節點正常
Slave_SQL_Running: Yes //SQL節點正常
… …
mysql>
設置slave1爲master1從:
[root@slave1 ~]# mysql -uroot -ppwd123
… …
mysql> change master to
-> master_host=“192.168.4.10”,
-> master_user=“slaveuser”,
-> master_password=“pwd123”,
-> master_log_file=“master1-bin.000001”,
-> master_log_pos=120;
Query OK, 0 rows affected, 2 warnings (0.12 sec)

mysql> start slave;
Query OK, 0 rows affected (0.16 sec)

mysql> show slave status\G
… …
Slave_IO_Running: Yes //IO節點正常
Slave_SQL_Running: Yes //SQL節點正常
… …
mysql>
設置slave2爲master1從:
[root@slave2 ~]# mysql -uroot -ppwd123
… …
mysql> change master to
-> master_host=“192.168.4.10”,
-> master_user=“slaveuser”,
-> master_password=“pwd123”,
-> master_log_file=“master1-bin.000001”,
-> master_log_pos=120;
Query OK, 0 rows affected, 2 warnings (0.13 sec)

mysql> start slave;
Query OK, 0 rows affected (0.27 sec)

mysql> show slave status\G
… …
Slave_IO_Running: Yes //IO節點正常
Slave_SQL_Running: Yes //SQL節點正常
… …
mysql>
5)配置主主從從關係,將master1配置爲master2的從
查看master2的binlog使用信息:
[root@master2 ~]# mysql -uroot -ppwd123
… …
mysql> show master status\G
*************************** 1. row ***************************
File: master2-bin.000001
Position: 120
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)

mysql>
設置master1成爲master2的從:
[root@master1 ~]# mysql -uroot -ppwd123
… …
mysql> change master to
-> master_host=“192.168.4.11”,
-> master_user=“slaveuser”,
-> master_password=“pwd123”,
-> master_log_file=“master2-bin.000001”,
-> master_log_pos=120;
Query OK, 0 rows affected, 2 warnings (0.31 sec)

mysql> start slave;
Query OK, 0 rows affected (0.27 sec)

mysql> show slave status\G
… …
Slave_IO_Running: Yes //IO節點正常
Slave_SQL_Running: Yes //SQL節點正常
… …
mysql>
6)測試主從架構是否成功
master1更新數據,查看其它主機是否同步:
[root@master1 ~]# mysql -uroot -ppwd123
… …
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
±-------------------+
4 rows in set (0.00 sec)

mysql> create database tarena;
Query OK, 1 row affected (0.06 sec)

mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| tarena |
| test |
±-------------------+
5 rows in set (0.00 sec)

mysql>
master2主機查看:
[root@master2 ~]# mysql -uroot -ppwd123 -e “show databases”
Warning: Using a password on the command line interface can be insecure.
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| tarena |
| test |
±-------------------+
[root@master2 ~]#
slave1主機查看:
[root@slave1 ~]# mysql -uroot -ppwd123 -e “show databases”
Warning: Using a password on the command line interface can be insecure.
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| tarena |
| test |
±-------------------+
[root@slave1 ~]#
slave2主機查看:
[root@slave2 ~]# mysql -uroot -ppwd123 -e “show databases”
Warning: Using a password on the command line interface can be insecure.
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| tarena |
| test |
±-------------------+
[root@slave2 ~]#

發佈了225 篇原創文章 · 獲贊 196 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章