Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7547143
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 30, 20262026-05-30T09:22:41+00:00 2026-05-30T09:22:41+00:00

I’m attempting to install the ‘mysql2’ gem on my production server using Capistrano. I

  • 0

I’m attempting to install the ‘mysql2’ gem on my production server using Capistrano.

I want to use SQLite in development, and MySQL in production.

I develop on a Windows 7 machine, and production is using Ubuntu.

When I run bundle install on my development machine, it installs MySQL2.

When Capistrano runs it against my production machine, it doesn’t even get a mention in the output.

When I run the same command on my production machine directly on the shell, it too doesn’t mention the gem.

I’m also finding that gem 'therubyracer', :platforms => :ruby isn’t being installed. I added this after the mysql2 entry. I’m hoping the two are related. mysql2 wasn’t working before I added therubyracer.

As a result of all of the above, I’m getting the following error when I’m attempting to view my site:

Please install the mysql2 adapter: gem install activerecord-mysql2-adapter (mysql2 is not part of the bundle. Add it to Gemfile.)

Additional Info

I hope the amount of info I’m including below is more useful than it is a pain.

gemfile

I appreciate I could place mysql2 in ‘production’ but that didn’t work.

source 'http://rubygems.org'

gem 'rails', '3.1.1'
gem 'nokogiri'
gem 'bcrypt-ruby'
gem 'faker'
gem 'will_paginate'
gem 'capistrano'
gem 'capistrano-ext'
gem 'mysql2', "~> 0.3"
gem 'therubyracer', :platforms => :ruby
gem 'sqlite3'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.1.4'
  gem 'coffee-rails', '~> 3.1.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
end

Output of Capistrano Bundle Install command

  * executing "cd /home/gannicott.co.uk/production/listen/www/releases/20120223225131 && bundle install --gemfile /home/gannicott.co.uk/prod
uction/listen/www/releases/20120223225131/Gemfile --path /home/gannicott.co.uk/production/listen/www/shared/bundle --deployment --without de
velopment test"
    servers: ["homer.gannicott.co.uk"]
    [homer.gannicott.co.uk] executing command
    [homer.gannicott.co.uk] sh -c 'cd /home/gannicott.co.uk/production/listen/www/releases/20120223225131 && bundle install --gemfile /home/
gannicott.co.uk/production/listen/www/releases/20120223225131/Gemfile --path /home/gannicott.co.uk/production/listen/www/shared/bundle --dep
loyment --without development test'
 ** [out :: homer.gannicott.co.uk] Installing rake (0.9.2.2)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing multi_json (1.1.0)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing activesupport (3.1.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing builder (3.0.0)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing i18n (0.6.0)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing activemodel (3.1.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing erubis (2.7.0)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing rack (1.3.6)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing rack-cache (1.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing rack-mount (0.8.3)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing rack-test (0.6.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing hike (1.2.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing tilt (1.3.3)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing sprockets (2.0.3)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing actionpack (3.1.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing mime-types (1.17.2)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing polyglot (0.3.3)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing treetop (1.4.10)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing mail (2.3.0)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing actionmailer (3.1.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing arel (2.2.3)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing tzinfo (0.3.31)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing activerecord (3.1.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing activeresource (3.1.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing highline (1.6.11)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing net-ssh (2.3.0)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing net-scp (1.0.4)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing net-sftp (2.0.5)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing net-ssh-gateway (1.1.0)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing capistrano (2.11.2)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing capistrano-ext (1.2.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing coffee-script-source (1.2.0)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing execjs (1.3.0)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing coffee-script (2.2.0)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing rack-ssl (1.3.2)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing json (1.6.5)
 ** [out :: homer.gannicott.co.uk] with native extensions
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing rdoc (3.12)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing thor (0.14.6)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing railties (3.1.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing coffee-rails (3.1.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing faker (1.0.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing jquery-rails (1.0.19)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Using bundler (1.0.21)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing rails (3.1.1)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing sass (3.1.15)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing sass-rails (3.1.5)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing uglifier (1.2.3)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Installing will_paginate (3.0.3)
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Updating .gem files in vendor/cache
 ** [out :: homer.gannicott.co.uk]
 ** [out :: homer.gannicott.co.uk] Your bundle is complete! It was installed into /home/gannicott.co.uk/production/listen/www/shared/bundle
 ** [out :: homer.gannicott.co.uk]
    command finished in 12924ms

capistrano’s deploy.rb

require 'bundler/capistrano'
require 'capistrano/ext/multistage'
# Based on: http://guides.beanstalkapp.com/deployments/deploy-with-capistrano.html
set :application, "listen_later"

set :scm, :git
set :repository, "repos location"
set :scm_passphrase, "passphrase"

set :user, "username"

set :stages, ["staging", "production"]
set :default_stage, "staging"

# The following needs to be added to avoid a failure (http://discuss.joyent.com/viewtopic.php?id=27326)
default_run_options[:pty] = true

namespace :deploy do
  desc "Tell Passenger to restart the app."
  task :restart do
    run "touch #{current_path}/tmp/restart.txt"
  end
end

# Removed --silent so I can see what's going on
set :bundle_flags,    "--deployment"

capistrano’s production deploy file

server "homer.gannicott.co.uk", :app, :web, :db, :primary => true
set :deploy_to, "/home/gannicott.co.uk/production/listen/www"

Database config file

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: databasename
  pool: 5
  username: username
  password: password
  #socket: **/opt/local/var/run/mysql5/mysqld.sock**

#  adapter: sqlite3
#  database: db/production.sqlite3
#  pool: 5
#  timeout: 5000

Cheers!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-30T09:22:42+00:00Added an answer on May 30, 2026 at 9:22 am

    All sorted. Although it’s with a work-around I’m not entirely happy with.

    The Research

    More searches of Google led me to this page:

    http://redmine.autotelik.co.uk/blogs (do a search for ‘mysql2’ and it will find the relevant part)

    This led me to… Stack Overflow (of course!):

    Make bundler use different gems for different platforms

    Which in turn led me to:

    https://github.com/carlhuda/bundler/issues/646

    The Problem

    When you run Bundler on Windows, it includes an entry for the Windows version of mysql2. However, this is different to what’s required on Linux. As a result, the Gemfile.lock file is inappropriate for use on Linux.

    The Solution

    The goal is to have the Gemfile.lock file generated by Bundler to be generated on the production server. From what I’ve read, this isn’t generally recommended. That said, to achieve this…

    I no longer include the Gemfile.lock file in my git repository:

    echo 'Gemfile.lock' >> .gitignore
    

    I’ve removed the file from git:

    git rm Gemfile.lock
    git commit -am "Removing Gemfile.lock to cope with Windows and Linux differences"
    git push
    

    I’ve told Capistrano to not run in deployment mode by adding the following line to my config/deploy.rb:

    set :bundle_flags,    ""
    

    You might want to include the --quiet flag in the quotes, but after this experience I’m keen to see what get’s installed when I deploy.

    Now when I run cap production deploy it’ll regenerate the Gemfile.lock file each time. This means the correct version of mysql2 is now used on my production server.

    I’d imagine this can be improved upon, but for now it’s working for me.

    Hope this helps someone someday.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want use html5's new tag to play a wav file (currently only supported
link Im having trouble converting the html entites into html characters, (&# 8217;) i
That's pretty much it. I'm using Nokogiri to scrape a web page what has
I want to count how many characters a certain string has in PHP, but
I am trying to understand how to use SyndicationItem to display feed which is
I have a French site that I want to parse, but am running into
I'm using v2.0 of ClassTextile.php, with the following call: $testimonial_text = $textile->TextileRestricted($_POST['testimonial']); ... and
I'm parsing an RSS feed that has an ’ in it. SimpleXML turns this
We're building an app, our first using Rails 3, and we're having to build
We are using XSLT to translate a RIXML file to XML. Our RIXML contains

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.