【问题标题】:Can't connect rails 4 application with mysql database on digitalocean无法将 rails 4 应用程序与 digitalocean 上的 mysql 数据库连接
【发布时间】:2013-11-20 19:48:22
【问题描述】:

此应用程序在开发模式下运行良好,但我无法在生产环境中连接数据库。我可以通过mysqld -u root -p 访问mysql,并且使用相同的密码。我将不胜感激。

database.yml

development:
  adapter: mysql2
  encoding: utf8
  pool: 5
  host: localhost
  database: rails_d
  username: root
  password: my_root_password

test:
  adapter: mysql2
  encoding: utf8
  database: rails_t
  pool: 5
  username: root
  password: my_root_password
  host: localhost

production:
  adapter: mysql2
  encoding: utf8
  pool: 5
  Host: localhost
  Database: rails
  Username: root
  Password: my_root_password

production.log

Mysql2::Error (Access denied for user 'root'@'localhost' (using password: NO)):
  mysql2 (0.3.13) lib/mysql2/client.rb:58:in `connect'
  mysql2 (0.3.13) lib/mysql2/client.rb:58:in `initialize'
  activerecord (4.0.0) lib/active_record/connection_adapters/mysql2_adapter.rb:18:in `new'
  activerecord (4.0.0) lib/active_record/connection_adapters/mysql2_adapter.rb:18:in `mysql2_connection'
  activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:440:in `new_connection'
  activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:450:in `checkout_new_connection'
  activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `acquire_connection'
  activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:356:in `block in checkout'
  /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
  activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:355:in `checkout'
  activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:265:in `block in connection'
  /usr/local/rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
  activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:264:in `connection'
  activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:546:in `retrieve_connection'
  activerecord (4.0.0) lib/active_record/connection_handling.rb:79:in `retrieve_connection'
  activerecord (4.0.0) lib/active_record/connection_handling.rb:53:in `connection'
  activerecord (4.0.0) lib/active_record/query_cache.rb:51:in `restore_query_cache_settings'
  activerecord (4.0.0) lib/active_record/query_cache.rb:43:in `rescue in call'
  activerecord (4.0.0) lib/active_record/query_cache.rb:32:in `call'
  activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
  activesupport (4.0.0) lib/active_support/callbacks.rb:373:in `_run__3934484784838772946__call__callbacks'
  activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks'
  actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.0.0) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.0.0) lib/rails/rack/logger.rb:21:in `block in call'
  activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged'
  activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged'
  activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged'
  railties (4.0.0) lib/rails/rack/logger.rb:21:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
  rack (1.5.2) lib/rack/runtime.rb:17:in `call'
  activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
  actionpack (4.0.0) lib/action_dispatch/middleware/static.rb:64:in `call'
  railties (4.0.0) lib/rails/engine.rb:511:in `call'
  railties (4.0.0) lib/rails/application.rb:97:in `call'
  unicorn (4.6.3) lib/unicorn/http_server.rb:552:in `process_client'
  unicorn (4.6.3) lib/unicorn/http_server.rb:632:in `worker_loop'
  unicorn (4.6.3) lib/unicorn/http_server.rb:500:in `spawn_missing_workers'
  unicorn (4.6.3) lib/unicorn/http_server.rb:142:in `start'
  /usr/bin/unicorn:121:in `<main>'

【问题讨论】:

    标签: mysql ruby-on-rails ruby-on-rails-4 digital-ocean


    【解决方案1】:

    你的插座在哪里?您还需要在其中添加路径:

    套接字:/var/run/mysqld/mysqld.sock

    【讨论】:

    • 我添加了套接字(database.yml 的上面一行),但同样的问题发生了。
    • 可以详细说明吗?我遇到了同样的问题,不确定如何添加套接字。谢谢。
    • mysql 套接字文件的位置,通常命名为“mysql.sock”,取决于您的操作系统。如果你在 OS X 上,默认路径是 /var/mysql/mysql.sock(除非你使用 MAMP,在这种情况下它将是 /Applications/MAMP/tmp/mysql/mysql.sock)。
    猜你喜欢
    • 2012-10-09
    • 1970-01-01
    • 2020-03-15
    • 2015-09-18
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 2015-01-05
    相关资源
    最近更新 更多