使用Rails 4连接到远程DB时出错

时间:2015-07-01 14:33:08

标签: mysql ruby-on-rails

对于我的项目,我尝试使用Rails 4建立与远程数据库的连接。

我修改了database.yml文件,看起来如此:

development:
  adapter: mysql2
  reconnect: false
  encoding: utf8
  database: <name_DB>
  username: <user_DB>
  password: <pass_DB>
  host: 127.0.0.1
  port: 3307
  pool: 5

我收到了这个错误:

Mysql2::Error
Lost connection to MySQL server at 'reading initial communication packet', system error: 0
  timeout: 5000
直到现在我还没有任何模特。

-gem&#39; mysql2&#39;已安装

- 通过SSH连接,也可以与MySQL工作台连接。

我错过了什么吗?我怎样才能实现连接?我应该修改别的吗?

2 个答案:

答案 0 :(得分:0)

如果需要使用ssh隧道连接到数据库,则无法正常工作。

您需要使您的mysql服务器可以访问远程连接:

How to allow remote connection to mysql

答案 1 :(得分:-1)

这是解决方案。

连接工作很重要。

  1. 使用远程服务器创建SSH! -p6060 database.yml
  2. 配置原始问题中发布的> dput(df) structure(list(datetime = structure(c(1396603740, 1396604340, 1396604940, 1396605540, 1396606140, 1396606740, 1396607340, 1396607940, 1396608540, 1396609140, 1396609740, 1396610340, 1396610940, 1396611540, 1396612140, 1396612740, 1396613340, 1396613940, 1396614540, 1396615140, 1396615740, 1396616340, 1396616940, 1396617540, 1396618140, 1396618740, 1396619340, 1396619940, 1396620540, 1396621140, 1396621740, 1396622340, 1396622940, 1396623540, 1396624140, 1396624740, 1396625340, 1396625940, 1396626540, 1396627140, 1396627740, 1396628340, 1396628940, 1396629540, 1396630140, 1396630740, 1396631340, 1396631940, 1396632540, 1396633140, 1396633740, 1396634340, 1396634940, 1396635540, 1396636140, 1396636740, 1396637340, 1396637940, 1396638540, 1396639140, 1396639740, 1396640340, 1396640940, 1396641540, 1396642140, 1396642740, 1396643340, 1396643940, 1396644540, 1396645140, 1396645740, 1396646340, 1396646940, 1396647540 ), class = c("POSIXct", "POSIXt"), tzone = "UTC"), count = c(46, 45, 47, 43, 49, 46, 46, 44, 44, 44, 45, 49, 50, 46, 45, 43, 47, 48, 48, 46, 47, 46, 46, 44, 46, 44, 45, 49, 44, 46, 44, 48, 44, 42, 44, 50, 44, 44, 48, 43, 43, 46, 44, 49, 49, 44, 42, 45, 45, 48, 46, 45, 46, 43, 40, 50, 39, 42, 48, 44, 44, 46, 43, 47, 46, 41, 43, 43, 46, 48, 45, 48, 43, 42)), .Names = c("datetime", "count"), row.names = c(NA, -74L), class = "data.frame") >head(df) datetime count 1 2014-04-04 09:29:00 46 2 2014-04-04 09:39:00 45 3 2014-04-04 09:49:00 47 4 2014-04-04 09:59:00 43 5 2014-04-04 10:09:00 49 6 2014-04-04 10:19:00 46
  3. 完成。