mysql - 运行 Rspec 时 ActiveRecord 无法连接到数据库服务器

标签 mysql ruby-on-rails activerecord rspec jruby

因此,在完成 bundle 安装后,我正在使用 jruby-1.7.16.1 运行 rspec 测试,但它们都因相同的错误而失败:

     Failure/Error: Unable to find arjdbc/jdbc/RubyJdbcConnection.java to read failed line

 ActiveRecord::JDBCError:
   com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
 # arjdbc/jdbc/RubyJdbcConnection.java:453:in `init_connection'

当我忘记启动 mysql 服务器时,偶尔会出现这样的错误,但我确保它正在运行。 GemFile 是这样的

    source 'http://rubygems.org'

gem 'rails', '3.2.8'
gem 'rubyzip', '0.9.9'
gem 'roo','1.12.1'
gem 'jdbc-mysql', '5.1.33', platform: :jruby
gem 'activerecord-jdbcmysql-adapter', '1.3.12', platform: :jruby
gem 'jquery-rails', '2.1.2'

gem 'haml', '3.1.7'
gem 'puma', '2.9.2'

gem 'devise', '2.1.2'
gem 'devise-async', '0.5.0'
gem 'cancan', '1.6.8'
gem 'simple_form', '2.0.4'
gem 'cocoon', '1.1.1'
gem 'inherited_resources', '1.3.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.9'
gem 'mechanize', '2.5.1'
gem 'delayed_job', '3.0.4'
gem 'paperclip', '3.4.0'
gem 'spreadsheet', '0.6.4.1'
gem 'geocoder', '1.1.6'
gem 'whenever', '0.8.2'
gem 'american_date', '1.0.0'
gem 'money','5.1.1'
gem 'rets', '0.11.0'
gem 'haversine','0.3.0'

gem 'celluloid','0.15.2'
gem 'sinatra', '1.4.6'
source "https://9789474f:e71b0546@gems.contribsys.com/" do
  gem 'sidekiq-pro','1.9.2'
end
gem 'redis','3.2.1'
gem 'remote_lock','1.1.0'
gem 'sidekiq-limit_fetch','2.3.0'

group :assets do
  gem 'stylus', '0.7.1'
  gem 'coffee-rails', '3.2.2'
  gem 'uglifier', '1.3.0'
end

group :development do
  gem 'net-ssh', '2.9.4'
  gem 'capistrano', '3.4.1'
  gem 'capistrano-rails', '1.3.0'
  gem 'capistrano-rvm', '0.1.2'
end

group :development, :test do
  gem 'dotenv-rails', '2.2.1'
  gem 'rspec-rails', '~> 3.5'
  gem 'fantaskspec'
end

group :test do
  gem 'factory_girl_rails', '~> 4.0'
  gem 'fantaskspec'
  gem 'vcr'
  gem 'fakeweb'
end

gem 'rest-client', '1.8.0'
gem 'poltergeist', '1.8.1'
gem 'nokogiri', '1.5.11'
gem 'zip-codes', '0.2.1'

gem 'elasticsearch-model', '0.1.9'
gem 'elasticsearch-rails', '0.1.9'
gem "fog", '1.38.0'
gem 'newrelic_rpm', '3.18.1.330'
gem 'sidekiq-scheduler', '2.1.7'
gem 'aws-sdk', '2.10.28'
gem 'StreetAddress', '1.0.6'

如果需要更多信息,我很乐意提供,如果有人遇到过这个问题,请告诉我。

奇怪的是,在我与我们的存储库进行合并之前,这些规范测试曾经运行良好。其他开发人员似乎没有遇到同样的问题,所以我只能假设 Gemfiles 都是正确的并且我的环境是问题所在。

最佳答案

  1. 确保数据库正常运行。
  2. 尝试连接到数据库的用户是否有连接权限?尝试在客户端软件中使用该用户登录。 Host 'xxx.xx.xxx.xxx' is not allowed to connect to this MySQL server
  3. 尝试创建一个具有管理员权限的新用户并尝试连接。

建议:尝试使用可以使您的开发环境保持同步的软件,并对其进行良好测试。我们使用 Vagrant 来重现开发环境。

关于mysql - 运行 Rspec 时 ActiveRecord 无法连接到数据库服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47665109/

相关文章:

sql - 如何找到同时拥有猫和狗的用户?

php - 在 PHP 中从 MySQL 中提取主键

php - 用PHP读写excel文件

php - 显示 MySQL 表中的行中的商店产品 (PHP)

MySQL 更新 XML 属性

ruby-on-rails - 不推荐使用 arity 为 1 的 Rails 3 重定向 block

ruby-on-rails - rails simple_nested_form_for fields_for 错误数量的参数

ruby-on-rails - Rails 部分模板中的可选局部变量 : how do I get out of the (defined? foo) 困惑?

php - 未捕获的 ActiveRecord\UndefinedPropertyException codeigniter

ruby-on-rails - Rails 模型的 XML 映射和验证