您的位置:首页 > 运维架构 > Linux

在Windows Azure上基于CentOS 6.3部署MySQL 5.6主从式数据库(1)

2013-12-26 21:27 363 查看

前言

Windows Azure的一大特色是能提供较为齐备的IaaS服务。这使得我们可以在WA上部署Linux操作系统和各种开源软件。WA上支持的Linux发行版很丰富,主要有如下版本1:

1. CentOS6.0+

2. Ubuntu 12.04+

3. SUSE Linux Enterprise Server 11 SP2+

4. Open SUSE 12.1+

目前,中国区WA上已有的Linux虚拟机映像包括:

1. CentOS 6.3

2. Ubuntu Server 12.04, 12.10, 13.04, 13.10

3. SUSE Linux Enterprise Server 11 SP2, SP3

4. Open SUSE 12.1

本文主要目的在于帮助读者了解,如何在WA上基于CentOS,搭建近似生产环境的主从式MySQL服务器。本文选择的CentOS是6.3,MySQL的版本是5.6。

创建CentOS 6.3虚拟机

1)设置地缘组

在Windows Azure的概念体系里,地缘组代表同一个数据中心内的计算存储资源的集合。从直观的角度来看,地缘组可以近似理解为一个相互临近的空间。无论是计算资源、存储资源、网络资源都需要存在于某个空间里,因此地缘组是第一步要设置的。进入“设置”页面的“地缘组”标签页下,点击“新建”按钮,在弹出的对话框中输入新的地缘组 “mysqlAG”。





2)创建存储账户

如果你还没有合适的存储账户,那么在创建任何虚拟机之前,最好先创建一个。否则,系统会自动为你创建一个。这是因为虚拟机的OSDisk必须要置于某个存储账户里。下面我们建立名为“mysqlstorage”的存储账户,并将其地缘组设为“mysqlAG”。



3)创建虚拟网络

虚拟网络能定义一个安全的边界。位于虚拟网络中的虚拟机如果不暴露对外的端口,就无法被外界访问,这有助于提高系统的安全性。另一个好处是,虚拟网络内的虚拟机可以获得持久的IP地址(注意,这不代表静态IP地址),这对于配置过程需要明显指定IP地址的情况是非常友好的。





同样,新建的虚拟网络的地缘组仍是“mysqlAG”。忽略DNS选项。接下来需要为虚拟网络定义一个子网,我们选择的起始内部IP地址是192.168.0.0,其IP地址的网络部分为28bit,意味着该子网可以包含16个主机IP地址。



4)创建云服务

任何一个虚拟机都必然要存在于某个cloudservice里。云服务可以被理解为一个虚拟机的容器,这个容器向外提供域名和公用IP地址。所以,在创建一个虚拟机时,最好先确定包含它的云服务。这里,我们创建名为“mysqlstor”的云服务,指定其地缘组为“mysqlAG”。



5)创建虚拟机

在“虚拟机”页面,点击“新建”按钮,选择“从库中”创建虚拟机。在弹出的对话框中,选择平台映像标签页中的OpenLogic CentOS 6.3。我们将使用这个映像来创建虚拟机。



我们首先考虑制作master角色的虚拟机,因此,将这个VM命名为“mysql-master”。



接下来,需要为这个虚拟机指定其关联的云服务、虚拟网络、子网和存储账户。



再接下来,为虚拟机定义MySQL端点。对于Linux VM,它缺省已经拥有SSH端点,这使得我们可以使用SSH工具登录到VM内。因为我们的VM将会运行MySQL数据库,所以应该为它指定对应的端点。端点(Endpoint)可以理解为内、外端口的映射组合,它在负载平衡、反向代理中具有重要作用。



mysql-master创建好后,在其仪表板中可以查看到它的SSH信息(包括域名和SSH端口号)。后面,我们将利用VM的SSH信息进行登录。



安装MySQL 5.6

1)打开PuTTY,使用mysql-master VM的SSH信息登录到虚拟机。



2)下载MySQL5.6安装包。WA中的CentOS 6.3映像缺省已经包含MySQL 5.1版本。对于多数情形而言,这个版本太老。所以,我们没有执行yuminstall mysql命令,而是设法先下载MySQL 5.6相关的安装包,再进行安装。执行下述命令来下载MySQL 5.6安装包。

wgethttp://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-5.6.14-1.el6.x86_64.rpm/from/http://cdn.mysql.com/

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.14-1.el6.x86_64.rpm/from/http://cdn.mysql.com/
wgethttp://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.14-1.el6.x86_64.rpm/from/http://cdn.mysql.com/

由于CentOS 6.3映像的repository中已经包含MySQL 5.1版本,为了实现兼容,需要下载一个专门的安装包,如下:

wgethttp://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.14-1.el6.x86_64.rpm/from/http://cdn.mysql.com/

3)安装MySQL 5.6 RPM

执行下述命令,安装MySQL。注意:请先安装MySQL-shared的RPM。

rpm -ivh MySQL-shared-5.6.14-1.el6.x86_64.rpm

rpm -ivh MySQL-client-5.6.14-1.el6.x86_64.rpm

rpm -Uvh MySQL-shared-compat-5.6.14-1.el6.x86_64.rpm

rpm -ivh MySQL-server-5.6.14-1.el6.x86_64.rpm



4)MySQL的初始配置

在第一次启动MySQL之前,先查看一下缺省设置的密码:

cat /root/.mysql_secret

输入下面的命令启动MySQL:

service mysql start

使用缺省的密码登录mysql:

mysql -uroot -p

进入mysql命令行界面,首先修改密码:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypassword1');

其次,建议为MySQL创建一个有别于root的新的管理员账户,以便从外部访问:

CREATE USER 'azureuser'@'%' IDENTIFIED BY 'mypassword2';

GRANT ALL ON *.* TO 'azureuser'@'%';



5)防火墙的配置

输入如下命令,编辑iptables配置文件:

vi /etc/sysconfig/iptables

在iptables配置文件中加入如下一行,用于打开3306端口:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -jACCEPT

保存iptables配置文件,然后退出。再重启iptables服务:

service iptables restart

再重启mysql服务

service mysql restart



6)测试mysql vm的是否可访问

在本地输入cmd.exe,打开命令行端口。如果还没有安装PsPing工具,可以通过如下链接下载: http://technet.microsoft.com/en-us/sysinternals/jj729731.aspx

【注意:Windows Azure目前还不支持在外部端口上的ICMP协议,所以使用ping工具进行检测是无效的。】

使用mysql-master VM的DNS名称和3306端口进行测试:

psping mysqlstor.chinacloudapp.cn:3306

如果返回如下图所示信息,表明MySQL VM已经安装且配置成功。



上面,我们尝试着在CentOS 6.3的VM中部署了一个MySQL5.6数据库。由于我们的目的是部署一主一从数据库集群,所以,我们还需要再创建几个相同配置的虚拟机和MySQL数据库,并将它们组成一个集群。既然我们已经部署了一台CentOS VM,并安装了MySQL,我们自然希望能以这台VM为模板,再部署几个VM实例。这能否实现呢?答案是肯定的,下面就让我们看如何实现。

创建Linux VM映像

Windows Azure支持对虚拟机映像。所谓映像(Image),就是虚拟机的模板,它使得我们可以基于这个模板创建多个虚拟机实例。无论虚拟机是Windows还是Linux,都可以制作对应的映像。下面,我们将演示如何制作Linux虚拟机的映像。

使用PuTTY登录到mysql-master VM

以根用户的身份输入下述命令:

waagent -deprovision

对于后续的提示,输入”y”确认



退出mysql-master VM,进入WA Management Portal,将mysql-master VM关闭。



当VM关闭后,“捕获”按钮就可用。点击“捕获”按钮,可弹出下面的对话框:



输入映像的名称,并且一定要勾选“我已在虚拟机上运行WindowsAzure Linux代理”。所谓Linux代理就是先前在虚拟机内运行的waagent程序。此外,请注意对话框的提示,映像捕获后,原有的VM实例会被删除。捕获成功后,我们将看到出现一个新的虚拟机映像。这表明我们的centos64-mysql56-image创建成功。



(未完待续。第二部分将介绍主从式数据库在VM中的搭建)

资料索引

CentOS 6.3上安装MySQL5.6的基本步骤参照了下述链接:

http://opensourcedbms.com/dbms/installing-mysql-5-6-on-cent-os-6-3-redhat-el6-fedora/

Windows Azure上能安装的Linux发行版可参考下述链接:

http://www.windowsazure.com/en-us/manage/linux/how-to-guides/linux-agent-guide/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: