如何在Amazon EC2的云中安装MySQL 5.7?
我看到的大多数Amazon Machine Instances(AMI)都没有任何MySQL服务器或拥有旧版本,例如MySQL Server 5.5
我想使用最新的和最大的。
-
您在机器实例中使用哪种操作系统?是Linux还是Windows?
-
@Robinson我正在尝试捕捉一些可以实现的常见方法。因此,我在下面的自我回答中选择了RHEL 7。不好意思,很抱歉。只是想与努力寻求解决方案的人们分享。
-
您可以使用ssh远程访问服务器(如果它是Linux),然后像在Linux环境中一样安装应用程序。如果是Windows,则还可以使用"远程桌面连接"远程服务器,然后将其安装在窗口系统中。只需确保打开正确的端口即可登录。
-
关于Stackoverflow的主题。如何在特定的Linux发行版上安装特定版本的mysql不是编程问题
-
@Vorsprung这是一个社区。我不运行它。感谢您表达自己。顺便说一句,您可以关闭投票。你没有:p
-
用户无法公开悬赏来结束对问题的投票,因为我确定您知道
-
我知道这个。程序员不断奴隶以获得5.7工作。我试图分享一个解决方案。是的,我应该知道你刚才说的。我不知道有什么赏金被添加到这个页面上,而且你说得对@Vorsprung
-
无休止的程序员应该使用RDS然后:)
-
@Vorsprung RDS很棒。有时他们需要一个实例。
-
@Vorsprung-程序员常用的软件工具被直接提及为主题。我认为这是一个灰色区域,也许应该在另一个站点上,也许不是。无论哪种方式,都需要付出大量的努力,为如何回答问题树立了很好的榜样,并使互联网成为一个更好的地方。
这是在Red Hat Enterprise Linux版本7(RHEL7)上相对较快的MySQL 5.7.14设置。
好。
我不隶属于AWS;我只是喜欢使用他们的服务。
好。
确保您拥有一个AWS EC2账户。请注意,即使Amazon要求备有信用卡,但如果您遵循其免费套餐条款,则第一年不会产生任何费用。通常,这意味着运行24/7的单个微实例(1 Gb RAM)服务器。
好。
启动EC2 RHEL实例
步骤1:在AWS EC2上,单击"启动实例",然后选择" Red Hat Enterprise Linux 7.2(HVM),SSD卷类型-ami-775e4f16",如下图所示。请注意,可用或升级的AMI(Amazon机器实例)的版本将随着时间推移而轮换,这是本文撰写之时。但是AMI编号显示在文本上方。
好。
好。
通常,我选择Amazon Linux AMI作为我的选择发行版。我不再这样做了,因为它是他们自己的杂物箱,并且自然地不确定要选择哪个程序包管理器以及文件。所以我现在坚持使用RHEL。
好。
在"选择实例类型"屏幕上,选择自由层合格的实例类型,如下所示:
好。
好。
点击下一步。在下一个"详细信息"屏幕上,单击"下一步"以接受默认值。在存储屏幕上,将大小更改为16GB,然后单击"下一步"。然后在标签信息上再次"下一步"。接下来是"配置安全组"屏幕,如下图所示:
好。
好。
现在接受" ??创建新的安全组"单选按钮。注意SSH端口22已通过0.0.0.0/0 CIDR对所有(任何地方)IP地址开放。其他选项包括检测"我的IP"(与您自己相同)或"自定义"。请放心,根据我们将设置的安全密钥,下一个屏幕访问将被锁定。在打开的端口下有一个"添加规则"按钮,用于添加诸如MySQL 3306或HTTP 80之类的端口。但是现在我们将跳过它。记下安全组名称。填写一个或暂时接受默认设置。正确执行此操作并不重要,因为以后可以为正在运行的实例更改安全组。单击查看并启动。
好。
然后单击"启动"(不要害怕,它还不会启动)。下一个屏幕显示:
好。
好。
请注意,由于已经生成了一些密钥对,因此默认情况下在第一个下拉列表中默认为"选择现有密钥对"。否则,您可以使用给定的提醒名称"创建新的密钥对",然后继续进行"下载密钥对"。此时,您已将密钥对作为.pem文件。以最高的安全性对待它,将其保存到不会丢失的地方。最好在密码保护区中,例如在操作系统的用户目录下。
好。
当您最终在同一屏幕上单击"启动实例"时,将相对于该密钥对(刚创建的密钥或已存在的密钥对)进行启动。请注意,密钥对的生成可能是您每年仅执行一次的任务。一次又一次地重复使用密钥对,具体取决于您。
好。
启动实例后,大约需要五分钟才能启动实例。在"实例"左菜单项下,您知道实例状态为"正在运行"且状态检查为" 2/2通过"时,实例已处于活动状态:
好。
好。
还记得您下载的.pem文件吗?只需一次,您就需要为PuTTY创建一个.ppk文件,该文件是一个SSH客户端程序,可以将cry-secured安全地传达给您正在运行的实例。为此,我们使用与腻子配合使用的腻子工具。因此,我们运行puttygen,在几分钟前加载下载的.pem,并使用" I&love%ancHovies2_fjdi8Ha"之类的"关键密码"生成.ppk文件。以下是腻子的图片:
好。
好。
以及标题为使用PuTTY从Windows连接到Linux实例的AWS EC2页面。步骤是"文件/加载"私钥。将过滤器更改为所有文件(。)。查找.pem文件。点击"打开",然后点击"确定"。输入密码。单击"保存私钥",并将其与.pem文件一起保存在与.ppk文件相同的文件夹中。如前所述,这不是您可能要做的,而是每年。
好。
现在运行SSH客户端PuTTY。使用会话/主机名类似
好。
1
| 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密钥密码,您应该坐在Linux提示符下。
好。
MySQL安装(我将这些说明放在GitHub上)
好。
好。
好。
URL01:下载MySQL Yum存储库
好。
URL02:第1章使用MySQL Yum存储库在Linux上安装MySQL
好。
现在,您已经使用数据库和用户设置在MySQL 2上加载并运行了MySQL 5.7.14。您的服务器需要进行映像。在此处查看我的此答案以创建图像(AMI)。备份您的数据。请参阅EC2文档,例如Amazon EC2的最佳实践。
好。
返回安全性:最佳实践当然建议不要打开数据库以通过端口3306的安全组直接连接。您如何选择遵循该要求,例如使用PHP,Java或其他编程API。请注意,各种数据库客户端程序可以通过SSH隧道(例如MySQL Workbench)进行连接。此外,SSH隧道还提供了各种开发库,但开发起来并不容易(主要是由于困难的密钥链和缺乏广泛的开发人员经验)。例如,这里有一个C#。
好。
此外,AWS还提供了RDS和其他数据库产品,从而减少了动手操作,并且像上面一样滚动您自己的数据库。许多开发人员将EC2定位为目标的原因是由于您拥有用于其他编程计划的功能完备的服务器。
好。
如果您确实如前所述修改了安全组,请考虑使用基于CIDR条目的IP范围,并在过度公开数据存储区之前谨慎使用。或过度授予。与本地工作几乎相同的最佳做法。
好。
关于此MySQL部分,有关以上几张图片的GitHub注释位于此处。
好。
好。
-
按照您使用Amazon Linux AMI的步骤进行操作后,工作不正常...我认为必须进行其他配置...
-
(((在此步骤上,请安装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.comgetmysql57-community-release-el7-8.noarch.rpm
我遇到了同样的问题,但是我不想使用Red Hat或Amazon Linux AMI以外的任何其他操作系统。 因此,这是安装MySQL 5.7和升级旧版本的过程。
短路径(无屏幕截图)
1 2 3 4 5 6
| 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的仓库
1
| wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm |
接下来,进行本地安装:
1
| yum localinstall mysql57-community-release-el6-11.noarch.rpm |
这可能是成功安装的关键。 您应该删除与MySQL 5.5有关的先前软件包
1
| yum remove mysql55 mysql55-common mysql55-libs mysql55-server |
最后,您可以安装MySQL 5.7
1
| yum install mysql-community-server |
重新启动MySQL Server并升级数据库
1 2
| service mysqld restart
mysql_upgrade -p |
您可以通过对MySQL进行身份验证来验证安装
-
(((在此步骤上,请安装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服务器不会启动。 (失败)知道如何解决?
-
@RenatoLazaro检查您的MySQL日志以了解问题...
-
什么检查命令记录MYSQL?
-
@RenatoLazaro检查/var/log/mysqld.log也是stackoverflow.com/questions/5441972/
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。那也行不通,简单的方法是从一台从未安装过的服务器开始,这就是我的情况。