【问题标题】:ActiveRecord::StatementInvalid: Mysql2::Error: No database selected: SHOW TABLES LIKE 'users'ActiveRecord::StatementInvalid: Mysql2::Error: No database selected: SHOW TABLES LIKE 'users'
【发布时间】:2013-05-29 05:28:00
【问题描述】:

我有一个应用程序部署到 AWS EC2 并使用 AWS RDS 服务。该应用程序正在运行,但是当我尝试使用 rails 控制台生产并查找用户表时,我收到以下错误:关于如何解决此问题的任何想法?

ActiveRecord::StatementInvalid: Mysql2::Error: No database selected: SHOW TABLES LIKE 'users'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `query'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `block in execute'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in log'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activesupport-3.2.13/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `execute'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/mysql2_adapter.rb:211:in `execute'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:259:in `execute_and_free'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:383:in `tables'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:390:in `table_exists?'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/connection_adapters/schema_cache.rb:30:in `table_exists?'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/model_schema.rb:223:in `table_exists?'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/activerecord-3.2.13/lib/active_record/base.rb:423:in `inspect'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in `start'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in `start'
from /Users/Home/.rvm/gems/ruby-1.9.3-p374/gems/railties-3.2.13/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'

这是我的数据库.yml

production:
  adapter: mysql2
  encoding: utf8
  database: <%= ENV['RDS_DB_NAME'] %>
  username: <%= ENV['RDS_USERNAME'] %>
  password: <%= ENV['RDS_PASSWORD'] %>
  host: <%= ENV['RDS_HOSTNAME'] %>
  port: <%= ENV['RDS_PORT'] %>

我在终端上使用这些命令:

% bundle exec rails console production
Loading production environment (Rails 3.2.13)
1.9.3-p374 :001 > User.all

【问题讨论】:

  • 你能告诉我们你运行的代码吗?
  • 你有没有找到解决这个问题的方法?
  • 不,据我记忆没有找到解决方案。

标签: ruby-on-rails amazon-ec2 console rds


【解决方案1】:

看起来其中一些环境变量是空白的。尝试在控制台中单独运行每个。

【讨论】:

  • 当我在 Rails 控制台中检查它们时,它们都为零。我按照 AWS Elastic Beanstalk 文档进行部署,我尝试替换 RDS 管理控制台中的值,但它仍然无法正常工作。错误说它无法连接到主机 xxxx.yyy.us-west-1.rds.amazonaws.com
猜你喜欢
  • 2015-12-26
  • 2018-03-15
  • 2016-09-13
  • 1970-01-01
  • 2018-08-05
  • 2014-07-10
  • 1970-01-01
  • 1970-01-01
  • 2021-12-09
相关资源
最近更新 更多