2013-08-18 40 views
1

我在Ruby中創建了一個小腳本,以查看我是否可以在Amazon Ec2 AMI(Ubuntu 64b)上的mysql數據庫上操作數據。我將SSH和MYSQL添加到實例安全組下的權限中。我能夠腳本連接到數據庫(使用mysql2寶石),但它不再工作,我不明白爲什麼我一直有錯誤:將ruby腳本引入運行在Ec2上的Mysql數據庫的錯誤

mysql2/client.rb:58:in `connect': Can't connect to MySQL server on 'XX.XXX.XX.XXX (60) (Mysql2::Error)

這是我使用

腳本
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數據庫工作正常。

在此先感謝。

回答

0

是否有可能你沒有授予MySQL數據庫端的遠程權限?默認情況下,這些權限不可用。

編輯: 如果連接是從ec2實例中創建的,但不在其外部,那麼您肯定沒有爲用戶授予授予權限。

+0

謝謝你的回答。我爲遠程IP添加了權限,但不幸的是它仍然顯示相同的錯誤。 –

相關問題