部署集群基础环境

  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 (c) 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 (c) 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 ~]#

猜你喜欢

转载自blog.csdn.net/weixin_44792728/article/details/90677790