2012-07-12 117 views
1

我是一个相对较新的LAMP开发人员,他尝试主要通过AWS学习Linux。我有一个活动的Elastic Beanstalk实例启动并运行。我做了百胜安装以下的包:连接到AWS上的Mysql Elastic Beanstalk

mysql55.x86_64 mysql55-bench.x86_64 mysql55-common.x86_64 mysql55-devel.x86_64 mysql55-libs.x86_64 mysql55-server.x86_64 mysql55-test.x86_64 

这一切似乎安装罚款......然后键入...

mysql -V 

这让我

mysql Ver 14.14 Distrib 5.5.20, for Linux (x86_64) using readline 5.1 

..这证实了mysql已经安装了...但是当我输入时...

mysql -u ec2-user -p 
Enter password: /*leaving blank*/ 

我得到...

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 

现在的事情是我的ssh-ING到这个服务器与我在AWS控制台创建一个安全组密钥对。因此,当我以ec2用户身份登录到该框时,密钥正在对我进行身份验证(来自.ppk文件)。据我所知,这是我的“根”用户,没有密码,但我可能会误解。

所以,基本上我不明白如何开始在Linux环境中使用MySQL的基础知识。直到现在,我才真正使用了PHPMyAdmin和WAMP的MySQL命令行。

有人可以帮我把我的电线穿过这里吗?

+0

我要补充,虽然它可能是显而易见的,但我已经SSH方式登录EC2实例,并在我手上有Linux文件系统。我对Linux还不够了解。 – 2012-07-12 01:49:47

+0

想添加输入:mysql -V ... gets me mysql Ver 14.14 Distrib 5.5.20,对于使用readline 5.1的Linux(x86_64)...确认已安装mysql,但输入mysql -u root -p。 ..得到我:错误2002(HY000):无法连接到本地MySQL服务器通过套接字'/var/lib/mysql/mysql.sock'(2) – 2012-07-12 02:40:08

+0

而且,因为我用我的密钥对sshing到服务器我没有为root用户使用密码。这可能是问题吗? – 2012-07-12 02:41:02

回答

11

哇。耽误。在你做其他事情之前,停止并且在beanstalk之外启动你的mysql机器,或者使用Amazon RDS。 Beanstalk旨在自动调整应用程序的Web层,而不是保存数据库。在扩展你的应用程序的那一刻,这台新机器就没有你的数据。当它缩小时,它可能会删除您的数据库机器。如果该实例最终退出或损坏的硬件,beanstalk将取代它。

Give the Beanstalk architectural overview a read.请注意图。您的数据库层存在于Beanstalk环境之外,而不在其中。

In this diagram the beanstalk environment is delineated by the broken yellow line.

+0

这是正确的克里斯,但是有没有一个很好的选择,以设置一个MySQL数据库以外的Auto Scaling Group网络应用程序,使所有的Web应用程序可以连接它?非常像使用在EBS上运行的mysql替换上图中的数据库。甚至可能,在第一个EC2实例中设置一个mysql并且永远不要让它关闭? – 2013-03-03 18:28:03

+0

@DanielDener:绝对。只需在它们自己的实例上创建一个或多个MySQL dbs,将它们放在一个公共安全组中,并确保Beanstalk SecurityGroup可以在端口3306上访问它。重要的是将DB保留在AutoScaling组的成员之外。 – Christopher 2013-03-04 15:06:21

+0

@Chistopher谢谢!虽然考虑了RDS的一些功能,但我决定尝试一下,从_micro_实例开始。希望每个Web App服务器和CloudFront中的高速缓存(Varnish)对RDS的压力较小。 – 2013-03-04 17:34:05