Amazon EC2 ssh操作超时

时间:2017-08-23 06:37:28

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

我今年1月份有一位ec2主持人工作正常。但最近我看到我的java应用程序没有响应,因此我尝试使用.pem密钥ssh到我的ec2主机。虽然安全组中的所有人都允许ssh 22端口,但它会超时。

我不能丢失那里的mysql服务器中的数据。所以我尝试添加一个规则来打开3306端口并从外部访问该服务器。但那也是时候了。双重检查安全组。他们似乎还可以。这是我的安全组的屏幕截图。

Security groups

然后,我拍摄了实例的图像,并从该图像中创建了另一个实例。猜猜是什么,我也不能ssh到那个主人。

然后,为了保证自己,我创建了另一个实例,但这次是一个新实例,即不是来自图像。我可以很容易地进入我的主人。

我在这里缺少什么?或者我以前的主持人有什么问题?我已经在SO中搜索答案,没有人可以帮我解决我的问题。

2 个答案:

答案 0 :(得分:1)

您可以尝试创建新实例,然后停止旧实例,分离卷,将卷附加到新实例并装入卷。那么至少你可以访问驱动器并保存你的mysql数据。

答案 1 :(得分:0)

@ dmohr的回答并不是一个确切的解决方案,但对我帮助很大。但是,我的aws guru @leapoffaith设法使用以下步骤为我恢复数据。他向我提供了他后面的步骤,然后我想在这里发布这些,我发现这些对于可能面临像我这样的问题的其他开发人员很有用。

  1. 获取新的ec2实例。
  2. 停止损坏的ec2,分离它的EBS卷,将卷附加到新实例。
  3. 然后使用新创建的EC2实例装入卷。使用以下命令装入:
    • 制作新的挂载点:mkdir mount_point
    • 要装载:sudo mount /dev/xvdf1 mount_point/(请注意,设备名称可能不同)。
  4. 获取以前的mysql数据的权限: sudo chown -R $USER:$(id -gn $USER) mount_point/var/lib/mysql
  5. 在新的ec2主机中安装mysql:

    • sudo apt-get update
    • sudo apt-get install mysql-server - 请记住使用与服务器应用程序连接到mysql数据库相同的root密码。
    • sudo mysql_secure_installation
  6. 停止mysql服务:sudo service mysql stop

  7. 将数据库文件夹从mount_point的mysql文件夹复制到/var/lib/mysql文件夹。例如,sudo cp -r yourdb /var/lib/mysql/

  8. 如果是InnoDB引擎,

    • sudo cp ibdata1 /var/lib/mysql/
    • sudo cp ib_logfile0 /var/lib/mysql/
    • sudo cp ib_logfile1 /var/lib/mysql/
  9. 授予'mysql'用户权限:

    • sudo chown -R mysql:mysql yourdb/
    • sudo chmod -R 777 mysql/yourdb
  10. 启动mysql服务:sudo service mysql start

  11. 卸载EBS:sudo umount -d /dev/xvdf1