【问题标题】:How to install MySQL 5.7 on Amazon ec2如何在 Amazon ec2 上安装 MySQL 5.7
【发布时间】:2016-12-25 19:36:20
【问题描述】:

如何在 Amazon EC2 上的云中安装 MySQL 5.7?

我看到的大多数 Amazon 机器实例 (AMI) 要么缺少任何 MySQL 服务器,要么拥有旧版本,例如 MySQL Server 5.5

我想使用最新最好的。

【问题讨论】:

  • 您在机器实例中使用什么样的操作系统?是 Linux 还是 Windows?
  • @Robinson 我试图捕捉一些可以实现它的常见方法。所以我在下面的自我回答中选择了 RHEL 7。对不起,如果它看起来很俗气。只是想与为解决方案而苦苦挣扎的人们分享。
  • Stackoverflow 的主题。如何在特定的 linux 发行版上安装特定版本的 mysql 不是编程问题
  • 用户无法关闭对开放赏金问题的投票,我相信您知道
  • @Vorsprung - software tools commonly used by programmers 被直接提及为主题。在我看来,这是一个灰色地带,也许这应该在另一个网站上,也许不是。无论哪种方式,答案都付出了很多努力,为如何回答问题树立了一个很好的榜样,它使互联网成为一个更好的地方。

标签: mysql amazon-web-services amazon-ec2


【解决方案1】:

这是在 Red Hat Enterprise Linux 版本 7 (RHEL7) 上相对快速设置 MySQL 5.7.14。

我不隶属于 AWS;我只是喜欢使用他们的服务。

确保您拥有 AWS EC2 账户。请注意,即使亚马逊需要信用卡存档,如果您遵守他们的Free-tier 条款,第一年也不会产生任何费用。通常,这意味着单个微实例 (1 Gb RAM) 服务器 24/7 运行。

启动 EC2 RHEL 实例

第 1 步: 在 AWS EC2 上单击“启动实例”并选择“Red Hat Enterprise Linux 7.2 (HVM), SSD Volume Type - ami-775e4f16”,如下图所示。请注意,可用或升级的 AMI(亚马逊机器实例)的版本将随着时间的推移而轮换,这是在撰写本文时。但是上面的文字中显示了AMI编号。

通常,我选择 Amazon Linux AMI 作为我的发行版。我不再这样做了,因为这是他们自己的大杂烩,自然不确定要选择哪个包管理器以及文件。所以我现在坚持使用 RHEL。

在“选择实例类型”屏幕上,选择符合免费套餐条件的实例类型,如下所示:

单击下一步。在下一个详细信息屏幕上,单击“下一步”以接受默认值。在存储屏幕上将大小更改为 16GB,然后单击“下一步”。然后在标签信息上再次“下一步”。接下来是下图所示的“配置安全组”屏幕:

现在接受“? 创建新的安全组”的单选按钮。注意 SSH 端口 22 对具有0.0.0.0/0CIDR所有(任何地方)IP 地址开放。其他选项包括检测“我的 IP”(如您的)或“自定义”。请放心,下一个屏幕访问将根据我们将设置的安全密钥锁定。在打开的端口下有一个添加规则按钮,用于添加 MySQL 3306 或 HTTP 80 等端口。但现在我们将跳过它。记下安全组名称。现在填写一个或接受默认值。正确执行此操作并不重要,因为稍后可以为正在运行的 Instance 更改安全组。点击查看并启动。

然后单击“启动”(不要担心,它还不会启动)。如下一个屏幕所示:

请注意,由于我已经生成了一些密钥对,因此在第一个下拉菜单中默认为“选择现有密钥对”。否则,您使用给定的提醒名称“创建一个新的密钥对”并继续“下载密钥对”。此时,您将密钥对作为.pem 文件。以最大的安全性对待它,将其保存到您不会丢失的地方。最好在密码保护区域中,例如在您的操作系统用户目录下。

当您最终在同一屏幕上单击“启动实例”时,会根据该密钥对(刚刚创建的或预先存在的密钥对)进行启动。请注意,密钥对的生成可能是您每年只执行一次的任务。一次又一次地重复使用密钥对,由您决定。

启动实例后,您大约有五分钟的时间才能启动它。在 Instances 左侧菜单项下,当 Instance State 显示为“running”且 Status Checks 显示为“2/2 pass”时,您知道该实例处于活动状态:

还记得您下载的.pem 文件吗?好吧,只有一次您需要为 PuTTY 创建一个 .ppk 文件,这是一个 SSH 客户端程序,它将以加密方式与您正在运行的实例进行通信。为此,我们使用与 PuTTY 配合使用的 puttygen 工具。所以我们运行puttygen,加载几分钟前下载的.pem,并生成带有“密钥密码”的.ppk文件,例如“I & love%ancHovies2_fjdi8Ha”。下面是puttygen的图片:

还有名为 Connecting to Your Linux Instance from Windows Using PuTTY 的 AWS EC2 页面。这些步骤是文件/加载私钥。将过滤器更改为所有文件 (.)。找到.pem 文件。点击“打开”,然后点击“确定”。输入密码。单击“保存私钥”,并将其与.ppk 文件和.pem 文件一起保存在同一文件夹中。如前所述,这不是您可能会做的事情,而是每年一次。

现在运行 SSH 客户端 PuTTY。将会话/主机名用作类似

ec2-user@ec2-www-xxx-yyy-zzz.us-west-2.compute.amazonaws.com

所以它基本上是ec2-user@ 与 EC2 控制面板上的实例下看到的公共 DNS 名称连接。至于指定 PuTTY .ppk 文件,如下所示,在“浏览”按钮旁边选择了 .ppk 文件:

返回到下图左上方的 Session 层次结构,在 Saved Sessions 下为其命名,然后点击“Save”。以后加载 PuTTY 时,只需按名称加载会话:

不要忘记,您在这里所做的只是将.ppk 引用保存到一个友好的命名配置文件中。您可能偶尔需要更改主机名(当然,当您在 EC2 上保存实例映像并在后续启动时使用新的实例 IP 地址返回时)。

好吧,这并不容易。但事实就是如此。

当您单击“打开”时,它将尝试连接到您的 RHEL 实例。在签名警告上点击是。输入之前保存的.ppk Key Passphrase,您应该会看到 Linux 提示符。

MySQL 安装(我会把这些笔记放在 GitHub 上)

URL01: Download MySQL Yum Repository

URL02: Chapter 1 Installing MySQL on Linux Using the MySQL Yum Repository

您现在已在 EC2 上加载并运行 MySQL 5.7.14,并设置了数据库和用户。您的服务器需要进行映像。请参阅我的这个答案here 创建图像(AMI)。备份您的数据。请参阅 EC2 文档,例如 Best Practices for Amazon EC2

回到安全性:最佳实践当然建议不要打开您的数据库以通过端口 3306 的安全组直接连接。您选择如何坚持这一点是您的选择,例如使用 PHP、Java 或其他编程 API。请注意,各种 db 客户端程序可以通过 MySQL Workbench 等 SSH 隧道连接。此外,SSH 隧道存在各种开发库,但开发起来并不容易(主要是由于密钥链困难和缺乏丰富的开发经验)。例如,有一个用于 C# here

此外,AWS 还提供 RDS 和其他数据库产品,以减少手动操作并像上面那样自行滚动。许多开发人员以 EC2 为目标的原因是因为您有一个完整的服务器用于您的其他编程计划。

如果您确实如前所述修改了安全组,请考虑使用基于 CIDR 条目的 IP 范围,并在过度暴露您的数据存储之前谨慎行事。或过度授予。与您在本地工作中所采用的最佳做法大致相同。

关于这个 MySQL 部分,我上面几张图片的 GitHub 笔记位于Here

【讨论】:

  • 按照您的步骤使用 Amazon Linux AMI,没有用...我认为必须有额外的配置才能做到这一点...
  • (((在这一步 yum install mysql-community-server))) ...................... ................................我收到错误错误:包:mysql-community-server-5.7.19-1.el7.x86_64( mysql57-community) 需要:libsasl2.so.3()(64bit) 错误:包:mysql-community-server-5.7.19-1.el7.x86_64 (mysql57-community) 需要:systemd 你可以尝试使用--skip -broken 以解决问题您可以尝试运行:rpm -Va --nofiles --nodigest
  • 我没有听从你的回答,但不得不投票。指导某人的好方法。它本身就是一篇文章,而不是一篇文章。谢谢:)
  • 对于像我一样难以区分 1 和 l 的人,存储库是 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
【解决方案2】:

我遇到了同样的问题,但我不想使用 Red Hat 或除 Amazon Linux AMI 之外的任何其他操作系统。所以,这里是安装 MySQL 5.7 和升级旧版本的过程。

短路径(无截图)

wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm
yum localinstall mysql57-community-release-el6-11.noarch.rpm
yum remove mysql55 mysql55-common mysql55-libs mysql55-server
yum install mysql-community-server
service mysqld restart
mysql_upgrade -p

漫长的路径(带屏幕截图)

首先,只是为了验证您可以检查当前版本。

然后,你应该下载 EL6 11 的 repo

wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm

接下来,进行本地安装:

yum localinstall mysql57-community-release-el6-11.noarch.rpm

这可能是成功安装的关键。你应该删除以前的包,关于 MySQL 5.5

yum remove mysql55 mysql55-common mysql55-libs mysql55-server

最后,你可以安装 MySQL 5.7

yum install mysql-community-server

重启 MySQL 服务器并升级你的数据库

service mysqld restart
mysql_upgrade -p

您可以通过验证 MySQL 来验证您的安装

【讨论】:

  • (((在这一步 yum install mysql-community-server))) ...................... ................................我收到错误错误:包:mysql-community-server-5.7.19-1.el7.x86_64( mysql57-community) 要求:libsasl2.so.3()(64bit) 错误:包:mysql-community-server-5.7.19-1.el7.x86_64 (mysql57-community) 要求:systemd 你可以尝试使用--skip -broken 以解决问题您可以尝试运行:rpm -Va --nofiles --nodigest。
  • @M.ShuaibImran 您使用了错误的包。查看我的帖子:mysql57-community-release-el6-11.noarch.rpm
  • 我必须从 MYSQL 中删除所有内容?我尝试运行你的命令,但它在我的 Centos 6 上不起作用。# rpm -qa | grep mysql mysql57-community-release-el6-11.noarch compat-mysql51-5.1.73-1.el6.remi.x86_64 mysql-libs-5.5.57-1.el6.remi.x86_64 php55w-mysql-5.5.38 -1.w6.x86_64
  • @RenatoLazaro 这是因为 Amazon Linux AMI 和 CentO 之间存在一些差异,您可以在这里查看:forums.aws.amazon.com/thread.jspa?threadID=146805。你可以试试这个包吗:mysql57-community-release-el7-11.noarch.rpm 并按照我发布的相同程序进行操作。
  • 我可以使用 (localhost mysql57-community-release-el6-11.noarch.rpm) 进行安装。但是在重新启动(服务 mysqld 重新启动)后,MYSQL 服务器不会启动。 (失败)知道怎么解决吗?
【解决方案3】:

sudo yum install mysql57-server

【讨论】:

  • Error: mysql57-server conflicts with mysql55-server-5.5.62-1.23.amzn1.x86_64
  • 你必须先删除,试试sudo yum remove mysql-server,它可能是一个变体,可能是mysql55-server。这也行不通,一个简单的方法是从一个从未安装过的服务器开始,这就是我的情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
相关资源
最近更新 更多