将ruby脚本连接到在Ec2上运行的Mysql数据库时出错

时间:2013-08-18 08:13:24

标签: mysql ruby linux amazon-ec2 mysql2

我在Ruby中创建了一个小脚本,看看我是否可以在Amazon Ec2 AMI(Ubuntu 64b)上操作mysql数据库上的数据。我将SSH和MYSQL添加到实例安全组下的权限。我能够将脚本连接到数据库(使用mysql2 gem),但它不再有效,我不明白为什么我一直有错误:

  

mysql2 / client.rb:58:在`connect':无法连接到MySQL服务器上   'XX.XXX.XX.XXX(60)(Mysql2 ::错误)

这是我正在使用的脚本

require 'rubygems'
require 'mysql2'
require 'net/ssh/gateway'


gateway = Net::SSH::Gateway.new('ec2-XX-XX-XX-XX.compute-1.amazonaws.com',
           'ec2-user',
           :keys => ['/XXXX/XXXXX.pem'])
port = gateway.open("XX.XXX.XX.XXX",3306,3307)

baseDeDatos= Mysql2::Client.new(:host => "XX.XXX.XX.XXX", :database=> "x" ,:username => "x", :password => "x")

puts "I made it!"

baseDeDatos.close

gateway.close(port)
gateway.shutdown!' 

有人可以解决我的问题吗?我很困惑,因为它在几天前工作,没有它没有(我没有改变任何权限或任何东西)。当然,我检查了MYSQL数据库是否正常工作。

提前致谢。

1 个答案:

答案 0 :(得分:0)

你有可能没有在mysql数据库端授予远程权限吗?默认情况下,这些权限不可用。

编辑:  如果连接是在ec2实例中进行的,而不是在ec2实例之外,那么你肯定没有对用户做过授权。