Gem::LoadError: Add `gem 'mysql'` to your Gemfile - mysql

Gem::LoadError: Specified 'mysql' for database adapter, but the gem is not loaded. Add `gem 'mysql'` to your Gemfile.
I have been getting this error when I was following this guide:
http://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html
and running
$ cd activerecord
$ bundle exec rake test_sqlite3
After searching around for a bit, I've been told I need to modify the Gemfile and add gem 'mysql' then run bundle install. However, I am not able to see mysql in the list.
Resolving dependencies...
Using rake (10.1.0)
Using i18n (0.6.5)
Using json (1.8.0)
Using minitest (5.0.8)
Using atomic (1.1.14)
Using thread_safe (0.1.3)
Using tzinfo (0.3.38)
Using activesupport (4.1.0.beta) from source at .
Using rack (1.5.2)
Using rack-test (0.6.2)
Using actionpack (4.1.0.beta) from source at .
Using builder (3.1.4)
Using activemodel (4.1.0.beta) from source at .
Using erubis (2.7.0)
Using actionview (4.1.0.beta) from source at .
Using mime-types (1.25)
Using polyglot (0.3.3)
Using treetop (1.4.15)
Using mail (2.5.4)
Using actionmailer (4.1.0.beta) from source at .
Using arel (4.0.0)
Using activerecord (4.1.0.beta) from source at .
Using bcrypt-ruby (3.1.2)
Using benchmark-ips (1.2.0)
Using bundler (1.3.5)
Using coffee-script-source (1.6.3)
Using execjs (2.0.2)
Using coffee-script (2.2.0)
Using thor (0.18.1)
Using railties (4.1.0.beta) from source at .
Using coffee-rails (4.0.0)
Using columnize (0.3.6)
Using dalli (2.6.4)
Using debugger-linecache (1.2.0)
Using debugger-ruby_core_source (1.2.3)
Using debugger (1.6.2)
Using hike (1.2.3)
Using jquery-rails (2.2.2)
Using mustache (0.99.4)
Using mini_portile (0.5.1)
Using nokogiri (1.6.0)
Using kindlerb (0.1.1)
Using metaclass (0.0.1)
Using mocha (0.14.0)
Using multi_json (1.8.1)
Using racc (1.4.9)
Using rack-cache (1.2)
Using tilt (1.4.1)
Using sprockets (2.10.0)
Using sprockets-rails (2.0.0)
Using rails (4.1.0.beta) from source at .
Using rdoc (3.12.2)
Using redcarpet (2.2.2)
Using sdoc (0.3.20)
Using sqlite3 (1.3.8)
Using turbolinks (1.3.0)
Using uglifier (2.2.1)
Using w3c_validators (1.2)
Using yajl-ruby (1.1.0)
Your bundle is complete!
Gems in the group db were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.
Gemfile
source 'https://rubygems.org'
gem 'rails', path: '/home/terence/rails'
gem 'arel', github: 'rails/arel'
gem 'mysql', '~> 2.9.1'
gem 'mysql2', '~> 0.3.13'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use edge version of sprockets-rails
gem 'sprockets-rails', github: 'rails/sprockets-rails'
# Use SCSS for stylesheets
gem 'sass-rails', github: 'rails/sass-rails'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', github: 'rails/coffee-rails'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'
# Run `rails console` in the browser. Read more: https://github.com/rails/web-console
gem 'web-console', group: :development
group :doc do
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', require: false
end
# Use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.1.2'
# Use unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano', group: :development
# Use debugger
# gem 'debugger', group: [:development, :test]
But, if I run gem list, my output is the following:
*** LOCAL GEMS ***
actionmailer (4.0.0)
actionpack (4.0.0)
activemodel (4.0.0)
activerecord (4.0.0)
activerecord-deprecated_finders (1.0.3)
activesupport (4.0.0)
arel (4.0.0)
atomic (1.1.14)
bcrypt-ruby (3.1.2)
benchmark-ips (1.2.0)
builder (3.1.4)
bundler (1.3.5)
bundler-unload (1.0.2)
celluloid (0.15.2)
chunky_png (1.2.8)
coderay (1.0.9)
coffee-rails (4.0.0)
coffee-script (2.2.0)
coffee-script-source (1.6.3)
columnize (0.3.6)
compass (0.12.2)
cyaml (0.0.45)
dalli (2.6.4)
debugger (1.6.2)
debugger-linecache (1.2.0)
debugger-ruby_core_source (1.2.3)
em-websocket (0.5.0)
erubis (2.7.0)
eventmachine (1.0.3)
execjs (2.0.2)
executable-hooks (1.2.3)
ffi (1.9.0)
formatador (0.2.4)
fssm (0.2.10)
guard (2.0.3)
guard-compass (1.0.0)
guard-haml (1.1.0)
guard-livereload (2.0.0)
haml (4.0.3)
hike (1.2.3)
http_parser.rb (0.5.3)
i18n (0.6.5)
jbuilder (1.5.1)
jquery-rails (3.0.4, 2.2.2)
json (1.8.0)
kindlerb (0.1.1)
listen (2.0.1)
lumberjack (1.0.4)
mail (2.5.4)
metaclass (0.0.1)
method_source (0.8.2)
mime-types (1.25)
mini_portile (0.5.1)
minitest (5.0.8, 4.7.5)
mocha (0.14.0)
multi_json (1.8.1)
mustache (0.99.4)
mysql (2.9.1)
mysql2 (0.3.13)
nokogiri (1.6.0)
polyglot (0.3.3)
pry (0.9.12.2)
racc (1.4.9)
rack (1.5.2)
rack-cache (1.2)
rack-test (0.6.2)
rails (4.0.0)
railties (4.0.0)
rake (10.1.0)
rb-fsevent (0.9.3)
rb-inotify (0.9.2)
rdoc (3.12.2)
redcarpet (2.2.2)
rubygems-bundler (1.3.4)
rvm (1.11.3.8)
sass (3.2.12)
sass-rails (4.0.0)
sdoc (0.3.20)
slop (3.4.6)
sprockets (2.10.0)
sprockets-rails (2.0.0)
sqlite3 (1.3.8)
thor (0.18.1)
thread_safe (0.1.3)
tilt (1.4.1)
timers (1.1.0)
treetop (1.4.15)
turbolinks (1.3.0)
tzinfo (0.3.38, 0.3.37)
uglifier (2.2.1)
w3c_validators (1.2)
web-console (1.0.3)
yajl-ruby (1.1.0)
database.yml
# 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: sqlite3
database: db/production.sqlite3
pool: 5
timeout: 5000
Help please?

I found another cause for this error. While I had the mysql2 gem installed, in my model I specified the string "mysql" to establish_connection:
establish_connection adapter: "mysql", database: "my_database"
Obviously, it should be "mysql2" not "mysql".

SOLVED: This took me a while to figure out, and I blame the guide's fault. Anyways, make SURE you're editing the correct Gemfile, and to do a bundle install in the directory with the Gemfile that you changed. When I ran
$ cd rails
$ bundle exec rails new ~/my-test-app --dev
that actually created a folder called my-test-app (which contained a Gemfile) in my home directory but I had to run $ bundle exec rake test_sqlite3 in my rails directory (which also contained a Gemfile).
Looking at my output above, it said Gems in the group db were not installed. when I ran bundle install, and was referring to lines in my Gemfile that weren't executing, and they just so happened to be the gem lines that install mysql, mysql2, and postgresql. I corrected the file like so:
Gemfile
# AR
gem 'sqlite3', '~> 1.3.6'
gem 'mysql', '~> 2.9.1'
gem 'mysql2', '~> 0.3.13'
gem 'pg', '~> 0.17.0'
group :db do
# gem 'pg', '>= 0.11.0'
# gem 'mysql', '>= 2.9.0'
# gem 'mysql2', '>= 0.3.13'
end

I had the same problem. The solution was that i forgot to adapt the Gemfile accordingly. So change into the directory where you created your rails app, then open the Gemfile with sudo vim Gemfile.
There you have to add or remove certain gems, according to your needs.
In my case i had to exchange the db-gem "sqlite3" with "mysql".
After that, save the file with :wq and run rails generate [model/controller/view] <name> again.
That has done the job for me, hope it helps some of you!

Related

NameError: uninitialized constant ActiveRecord::ConnectionAdapters::MysqlAdapter while starting rails server

Please could anyone help me out with this. I am working on a project that is built in rails 3.2.13 (JRuby) using MySQL database. Whenever i start the server i get the below error.
rails s -e development -p3000
/JRuby-9.2.0.0/jruby-9.2.0.0/lib/ruby/gems/shared/gems/activesupport-3.2.13/lib/active_support/values/time_zone.rb:270: warning: circular argument reference - now
/JRuby-9.2.0.0/jruby-9.2.0.0/lib/ruby/gems/shared/gems/activesupport-3.2.13/lib/active_support/core_ext/object/duplicable.rb:111: warning: BigDecimal.new is deprecated
/JRuby-9.2.0.0/jruby-9.2.0.0/lib/ruby/gems/shared/gems/activerecord-3.2.13/lib/active_record/associations/has_many_association.rb:52: warning: circular argument reference - reflection
/JRuby-9.2.0.0/jruby-9.2.0.0/lib/ruby/gems/shared/gems/activerecord-3.2.13/lib/active_record/associations/has_many_association.rb:56: warning: circular argument reference - reflection
/JRuby-9.2.0.0/jruby-9.2.0.0/lib/ruby/gems/shared/gems/activerecord-3.2.13/lib/active_record/associations/has_many_association.rb:60: warning: circular argument reference - reflection
/JRuby-9.2.0.0/jruby-9.2.0.0/lib/ruby/gems/shared/gems/activerecord-3.2.13/lib/active_record/associations/has_many_association.rb:79: warning: circular argument reference - reflection
=> Booting WEBrick
=> Rails 3.2.13 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released.
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. /home/jayvijay/RailsTestProject/config/environment.rb:5)
Thu Sep 27 19:42:40 IST /home/jayvijay/RailsTestProject/config/initializers/enhancements.rb:24: warning: constant ::Fixnum is deprecated
/home/jayvijay/RailsTestProject/config/initializers/enhancements.rb:24: warning: constant ::Bignum is deprecated
Exiting
NameError: uninitialized constant ActiveRecord::ConnectionAdapters::MysqlAdapter
I came to know that the below block in the config/initializers/enhancements.rb file is causing the flow to break.
# Patch taken from https://github.com/jruby/activerecord-jdbc-adapter/issues/229
require 'arjdbc/mysql/adapter'
ActiveRecord::ConnectionAdapters::MysqlAdapter.class_eval do
alias original_quote_string quote_string
def quote_string(s)
quoted_string = original_quote_string(s)
needs_encoding?(s, quoted_string) ? quoted_string.force_encoding('UTF-8') : quoted_string
end
private
def needs_encoding?(original_string, quoted_string)
!quoted_string.frozen? && original_string.length != quoted_string.length
end
end
So then i tried changing MysqlAdapter to Mysql2Adapter in the enhancements.rb file and tried starting the server again. This time the server started successfully but when i typed localhost:3000 onto the browser it produced the below error :
error_screenshot
Please could anyone advise on how to resolve the above issue.
Below are version details for:-
JRuby
jruby 9.2.0.0 (2.5.0) 2018-05-24 81156a8 OpenJDK 64-Bit Server VM 25.171-b11 on 1.8.0_171-8u171-b11-2~14.04-b11 +jit [linux-x86_64]
Rails
Rails 3.2.13
Gem Version
2.7.6
Bundler Version
Bundler version 1.16.5
Below is my gemfile:-
source 'http://rubygems.org'
gem 'rails', '=3.2.13'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'execjs'
gem 'therubyrhino'
gem 'json'
gem 'bcrypt-ruby'
gem 'activerecord-jdbc-adapter'
gem 'activerecord-jdbcmysql-adapter'
gem "jruby-openssl"
gem 'net-ldap'
gem 'enum_column3'
gem "auto_form"
gem "eav_presenter"
gem "warbler"
gem "composite_primary_keys"
gem "test-unit"
#for usual admin scaffolds for AR models. See admin_controller.rb
gem "scaffolding_extensions"
gem "active_presenter"
gem "will_paginate"
gem "bitfields"
# Gems used only for assets and not required
# in production environments by default.
group :assets do
# gem 'sass-rails'
gem 'coffee-rails'
gem 'uglifier'
end
group :qa do
gem "better_errors"
end
gem 'prototype-rails'
# Use unicorn as the web server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'ruby-debug'
Below is my database.yml file:
# MySQL.  Versions 4.1 and 5.0 are recommended.
#
#
# Be sure to use new-style password hashing:
#   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
default: &default
adapter: <%= ConfigClient.conn[:adapter] %>
database: <%= ConfigClient.conn[:database] %>
host: <%= ConfigClient.conn[:host] %>
username: <%= ConfigClient.conn[:username] %>
password: <%= ConfigClient.conn[:password] %>
port: <%= ConfigClient.conn[:port] %>
encoding: <%= ConfigClient.conn[:encoding] %>
pool: 30
timeout: 8000
development:
<<: *default
qa:
<<: *default
production:
<<: *default
ConfigClient File which is used above:-
require 'java'
require_relative './log4j-1.2.15.jar'
require_relative './mysql-connector-java-5.1.17-bin.jar'
class ConfigClient
def self.connection_params(db_name)
conn = get_prop(db_name, "CONNECTION_LIST").split("|")
default_connection_params.merge({
:database => conn[0],
:host => conn[1],
:port => conn[2],
:username => conn[3],
:password => conn[4]
})
end
def self.default_connection_params
{:adapter => "jdbcmysql", :encoding => "utf8", :reconnect => false, :pool => 30, :timeout => 8000}
end
def self.conn
connection_params("database.db.rw")
end
The below gems are installed in my system:-
gem list
*** LOCAL GEMS ***
actioncable (5.2.1)
actionmailer (5.2.1, 3.2.13)
actionpack (5.2.1, 3.2.13)
actionview (5.2.1)
active_presenter (3.2.2)
activejob (5.2.1)
activemodel (5.2.1, 3.2.13)
activerecord (5.2.1, 3.2.13)
activerecord-jdbc-adapter (50.0)
activerecord-jdbcmysql-adapter (50.0)
activeresource (3.2.13)
activestorage (5.2.1)
activesupport (5.2.1, 3.2.13)
arel (9.0.0, 3.0.3)
auto_form (0.0.2)
bcrypt (3.1.12 java)
bcrypt-ruby (3.1.5 java)
better_errors (2.5.0)
bitfields (0.8.0)
builder (3.2.3, 3.0.4)
bundler (1.16.5)
cmath (default: 1.0.0)
coderay (1.1.2)
coffee-rails (3.2.2)
coffee-script (2.4.1)
coffee-script-source (1.12.2)
composite_primary_keys (5.0.14)
concurrent-ruby (1.0.5 java)
crass (1.0.4)
csv (default: 1.0.0)
eav_presenter (0.3)
enum_column3 (0.1.4)
erubi (1.7.1)
erubis (2.7.0)
execjs (2.7.0)
fileutils (default: 1.1.0)
globalid (0.4.1)
hike (1.2.3)
httpclient (2.8.3)
i18n (1.1.0, 0.6.1)
ipaddr (default: 1.2.0)
jar-dependencies (default: 0.3.12)
jdbc-mysql (5.1.46)
journey (1.0.4)
jruby-jars (9.2.0.0)
jruby-openssl (0.10.1 java, default: 0.10.0 java)
jruby-rack (1.1.21)
jruby-readline (default: 1.2.2 java)
json (default: 2.1.0 java, 1.8.6 java)
loofah (2.2.2)
mail (2.7.0, 2.5.5)
marcel (0.3.3)
method_source (0.9.0)
mime-types (1.25.1)
mimemagic (0.3.2)
mini_mime (1.0.1)
minitest (5.11.3)
multi_json (1.13.1)
net-ldap (0.16.1)
nio4r (2.3.1 java)
nokogiri (1.8.4 java)
polyglot (0.3.5)
power_assert (1.1.3)
prototype-rails (3.2.1)
psych (default: 3.0.2 java)
rack (2.0.5, 1.4.7)
rack-cache (1.8.0)
rack-ssl (1.3.4)
rack-test (1.1.0, 0.6.3)
rails (3.2.13)
rails-dom-testing (2.0.3)
rails-html-sanitizer (1.0.4)
railties (5.2.1, 3.2.13)
rake (12.3.1)
rake-ant (default: 1.0.4)
rdoc (default: 6.0.1, 3.12.2)
rubyzip (1.2.2)
scaffolding_extensions (1.6.1)
scanf (default: 1.0.0)
sprockets (3.7.2, 2.2.3)
sprockets-rails (3.2.1)
test-unit (3.2.8)
therubyrhino (2.0.4)
therubyrhino_jar (1.7.6)
thor (0.20.0)
thread_safe (0.3.6 java)
tilt (1.4.1)
treetop (1.4.15)
tzinfo (1.2.5, 0.3.54)
uglifier (4.1.19)
validated_arguments (0.0.1)
warbler (2.0.5)
webrick (default: 1.4.2)
websocket-driver (0.7.0 java)
websocket-extensions (0.1.3)
will_paginate (3.1.6)
Is there any problem with the enhancements.rb file, do i have to change it? OR Is there any problem with the installed gems?. Please
Does anyone have any idea for this?. Any help would be appreciated.
Thanks,

Installing mysql2 0.3.13

I'm having trouble finding good instructions on how to install gem mysql2-0.3.13 and have it up and running for a ruby on rails application. Could anyone please break down this process? When I try to install the gem, I get this error:
I m using rails 3.2.13 and ruby 1.9.3 and mac OSX
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
/Users/sumitkalra1984/.rvm/gems/ruby-1.9.3-p448#global/gems/bundler-1.3.5/lib/bundler.rb:284: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777
Using rake (10.1.0)
Using i18n (0.6.5)
Using minitest (4.7.5)
Using multi_json (1.7.9)
Using atomic (1.1.13)
Using thread_safe (0.1.2)
Using tzinfo (0.3.37)
Using activesupport (4.0.0)
Using builder (3.1.4)
Using erubis (2.7.0)
Using rack (1.5.2)
Using rack-test (0.6.2)
Using actionpack (4.0.0)
Using mime-types (1.24)
Using polyglot (0.3.3)
Using treetop (1.4.15)
Using mail (2.5.4)
Using actionmailer (4.0.0)
Using activemodel (4.0.0)
Using activerecord-deprecated_finders (1.0.3)
Using arel (4.0.0)
Using activerecord (4.0.0)
Using thor (0.18.1)
Using railties (4.0.0)
Using activerecord-session_store (0.0.1)
Using bcrypt-ruby (3.1.1)
Using coffee-script-source (1.6.3)
Using execjs (2.0.0)
Using coffee-script (2.2.0)
Using coffee-rails (4.0.0)
Using daemons (1.1.9)
Using orm_adapter (0.4.0)
Using warden (1.2.3)
Using devise (3.0.3)
Using eventmachine (1.0.3)
Using multipart-post (1.2.0)
Using faraday (0.8.8)
Using hashie (2.0.5)
Using hike (1.2.3)
Using httpauth (0.2.0)
Using jbuilder (1.5.0)
Using jquery-rails (3.0.4)
Using json (1.8.0)
Using jwt (0.1.8)
Using libv8 (3.16.14.3)
Installing mysql2 (0.3.13)
Errno::EACCES: Permission denied - /Users/sumitkalra1984/.rvm/gems/ruby-1.9.3-p448/gems/mysql2-0.3.13/MIT-LICENSE
An error occurred while installing mysql2 (0.3.13), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.13'` succeeds before bundling.
If you have facing permission problem then install the gems as a root user
like
sudo bundle install
please check you have mysql installed properly
and for Mysql2 gem before installing the gem type
sudo apt-get install mysql-server libmysqlclient-dev libmysql-ruby
I am not a mac user but It work's in ubuntu. Hope this could help you.
I ran to the same problem. To fix this problem, open a command prompt. go to your application folder. And type: gem install mysql2 -v 0.3.11 this version is working great. this is for Windows.
I don't know if you are in my same situation. I've solved checking out if in my RVM there was a directory for mysql gem (probably generated from previous bundle commands). I've removed the folder and then i've run again bundle install.

"undefined method `accept' for nil:NilClass"

I am getting "undefined method `accept' for nil:NilClass" error while running db:migrate. My configuration is:
Rails 3.2.8
MySql 5.1.54
OS : win7
ruby : 1.9.2
my gems list command output:
F:\RailsApp\MyApp>gem list
*** LOCAL GEMS ***
actionmailer (3.2.8)
actionpack (3.2.8)
activemodel (3.2.8, 3.1.0)
activerecord (3.2.8)
activeresource (3.2.8)
activesupport (3.2.8, 3.1.0)
arel (3.0.2)
bcrypt-ruby (3.0.1 x86-mingw32)
builder (3.0.0)
bundler (1.1.5)
coffee-rails (3.2.2)
coffee-script (2.2.0)
coffee-script-source (1.3.3)
erubis (2.7.0)
execjs (1.4.0)
hike (1.2.1)
i18n (0.6.0)
journey (1.0.4)
jquery-rails (2.0.2)
json (1.7.4)
mail (2.4.4)
mime-types (1.19)
minitest (1.6.0)
multi_json (1.3.6)
mysql (2.8.1 x86-mingw32)
mysql2 (0.3.11 x86-mingw32, 0.2.6 x86-mingw32)
polyglot (0.3.3)
rack (1.4.1, 1.3.6)
rack-cache (1.2)
rack-ssl (1.3.2)
rack-test (0.6.1)
rails (3.2.8)
railties (3.2.8)
rake (0.9.2.2, 0.8.7)
rdoc (3.12, 2.5.8)
sass (3.2.0)
sass-rails (3.2.5)
sprockets (2.1.3)
thor (0.15.4)
tilt (1.3.3)
treetop (1.4.10)
tzinfo (0.3.33)
uglifier (1.2.7)
I have also copy the %MYSQLPATH%/bin/libmySQL.dll file to %RUBYHOME%/bin folder.
Can anybody pleas help me to solve this problem?
This may be a AR-JDBC issue. Try running
bundle update activerecord-jdbc-adapter
This may help you..
If it didn't work for you, try with
bundle update mysql2
For more info look into the GitHub Issue
I had the same issue fixed by correcting database.yml file. It was having adopter as mysql2 now I have correct it to mysql
Finally I have resolve the problem with reference to this post mysql2 gem compiled for wrong mysql client library.
What I have done is as follows:
download and extract the package from http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip/from/pick
remove all mysql/mysql2 gem and re-install mysql gem with this command:
gem install mysql --platform=ruby -- --with-mysql-dir=E:/mysql-connector-c-noinstall-6.0.2-win32
add gem 'mysql' in GemFile
modify database.yml with adapter:mysql
copy MYSQLHOME/bin/libmsql.dll to RUBYHOME/bin
if find dsl error then add require 'rake/dsl_definition' at top of RakeFile
and it works.. :-)
My final GemFile is:
source 'https://rubygems.org'
gem 'rails', '3.2.3'
gem 'mysql'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'

Rails cannot connect to mySQL

I have been trying to set up an Apache server utilizing Ruby on Rails and mySQL through Phusion Passenger. I have Apache v2.2.3, Passenger v3.0.13, Ruby v1.9.3, Rails v3.2.6, and mySQL v5.0.95.
Earlier, I encountered problems due to an incorrect Javascript runtime, but I was able to fix that by installing execjs and therubyracer. I was successfully able to create the website with SQLite, but I need to use mySQL instead.
Now, I have created a new project with the command "rails new myProject -d mysql" and added the appropriate gems to my Gemfile (that is, "gem 'mysql2','0.3.11'"; "gem 'execjs'"; and "gem 'therubyracer'").
My database.yml file looks like this (the test and production parts only differ in terms of name) :
development:
adapter: mysql2
encoding: utf8
database: myProject_development
pool: 5
username: root
password:
host: localhost
socket: /var/lib/mysql/mysql.sock
Now, the problem is not immediately apparent. From terminal, I cannot find any problems (that is, "rake db:create" runs correctly, no errors appear upon scaffolding, etc.), but when I visit the website, Passenger displays the following error:
Ruby (Rack) application could not be started
Could not find mysql2-0.3.11 in any of the sources (Bundler::GemNotFound)
And none of the webpages appear. So, where is my fault? I believe my Gemfile is correct, my database.yml seems to be updated, I can access mySQL from terminal, and I was able to run the website in SQLite. Any suggestions would be appreciated!
EDIT: My gemfile:
source 'https://rubygems.org'
gem 'rails', '3.2.6'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'mysql2','0.3.11'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
# Use unicorn as the app server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'debugger'
gem 'execjs'
gem 'therubyracer'
EDIT: Output of "bundle list":
Gems included by the bundle:
* actionmailer (3.2.6)
* actionpack (3.2.6)
* activemodel (3.2.6)
* activerecord (3.2.6)
* activeresource (3.2.6)
* activesupport (3.2.6)
* arel (3.0.2)
* builder (3.0.0)
* bundler (1.1.4)
* coffee-rails (3.2.2)
* coffee-script (2.2.0)
* coffee-script-source (1.3.3)
* erubis (2.7.0)
* execjs (1.4.0)
* hike (1.2.1)
* i18n (0.6.0)
* journey (1.0.4)
* jquery-rails (2.0.2)
* json (1.7.3)
* libv8 (3.3.10.4)
* mail (2.4.4)
* mime-types (1.19)
* multi_json (1.3.6)
* mysql2 (0.3.11)
* polyglot (0.3.3)
* rack (1.4.1)
* rack-cache (1.2)
* rack-ssl (1.3.2)
* rack-test (0.6.1)
* rails (3.2.6)
* railties (3.2.6)
* rake (0.9.2.2)
* rdoc (3.12)
* sass (3.1.20)
* sass-rails (3.2.5)
* sprockets (2.1.3)
* therubyracer (0.10.1)
* thor (0.15.4)
* tilt (1.3.3)
* treetop (1.4.10)
* tzinfo (0.3.33)
* uglifier (1.2.6)
EDIT: Oh, and I'm working off of CentOS 5.8, by the way.
Add the following to your Gemfile:
gem 'mysql2'
Next run
bundle install

Rails 3 - Incorrect MySQL client library version! Gem compiled for the wrong client library version

I cloned the github repo https://github.com/8bitpal/hackful, run 'bundle install' and now 'rake db:create'. But I get an error message:
Incorrect MySQL client library version! This gem was compiled for 5.0.45 but the client library is 5.5.15.
Tried to find out more infos about my mysql setup:
$ mysql_config --version
$ 5.0.45
$ mysql
$ mysql> SELECT version();
+-----------+
| version() |
+-----------+
| 5.1.57 |
+-----------+
Since I rarely do sysadmin stuff I feel a bit lost how to interpretate this info, i.e. why is the "client library 5.5.15" mentioned, is that kind of a minimum version mysql version when using the mysql2 gem?
Anyhow, I did some more research on SO and found this thread
Ruby mysql2 gem compiled for wrong mysql client library version. The question is similar to mine:
After updating MySQL to 5.5 using apt-get, the mysql2 gem stopped
working.
Here's the error:
Incorrect MySQL client library version! This gem was compiled for
5.5.17 but the client library is 5.1.58. (RuntimeError)
The answer in that thread:
I have encounter the same error when using Ubuntu Server 11.04 and
Percona Server, what have I done was:
replace /usr/lib/libmysqlclient.so.16.0.0 with
/usr/lib/libmysqlclient.so.18.0.0
Problem in my case is that I don't have such a file:
ls /usr/lib/mysql
libdbug.a libmyisam.a libmysqlclient.a libmysqlclient_r.a libmystrings.a libvio.a
libheap.a libmyisammrg.a libmysqlclient.la libmysqlclient_r.la libmysys.a
Most other threads with a similar topic are about Windows, but I'm on OS X. Any ideas what can I try next? More infos about my setup: OS X Lion, rvm, Rails 3.1.3, ruby 1.9.2p290. Gem list:
*** LOCAL GEMS ***
actionmailer (3.1.3)
actionpack (3.1.3)
activemodel (3.1.3)
activerecord (3.1.3)
activeresource (3.1.3)
activesupport (3.1.3)
addressable (2.2.7)
arel (2.2.1)
bcrypt-ruby (3.0.1)
builder (3.0.0)
bundler (1.0.21)
cancan (1.6.5)
capybara (1.1.2)
capybara-webkit (0.10.1)
childprocess (0.3.0)
coderay (1.0.5)
coffee-rails (3.1.1)
coffee-script (2.2.0)
coffee-script-source (1.2.0)
cucumber (1.1.4)
cucumber-rails (1.2.1)
database_cleaner (0.7.1)
delayed_job (3.0.0)
delayed_job_active_record (0.3.1)
devise (2.0.0)
diff-lcs (1.1.3)
erubis (2.7.0)
execjs (1.3.0)
factory_girl (2.6.3)
factory_girl_rails (1.7.0)
faker (1.0.1)
fakeweb (1.3.0)
ffi (1.0.11)
fileutils (0.7)
gherkin (2.7.6)
growl (1.0.3)
guard (1.0.3)
guard-bundler (0.1.3)
guard-cucumber (0.7.5)
guard-rspec (0.7.2)
guard-spork (0.8.0)
hike (1.2.1)
i18n (0.6.0)
jquery-rails (1.0.19)
json (1.6.5)
launchy (2.0.5)
libv8 (3.3.10.4 x86_64-darwin-11)
mail (2.3.0)
make_voteable (0.1.1)
method_source (0.7.1)
mime-types (1.17.2)
multi_json (1.0.4)
mysql (2.8.1)
mysql2 (0.3.11)
nokogiri (1.5.0)
orm_adapter (0.0.6)
polyglot (0.3.3)
pry (0.9.8.4)
rack (1.3.6)
rack-cache (1.1)
rack-mount (0.8.3)
rack-ssl (1.3.2)
rack-test (0.6.1)
rails (3.1.3)
rails_autolink (1.0.5)
railties (3.1.3)
rake (0.9.2.2)
rb-fsevent (0.9.1)
rdiscount (1.6.8)
rdoc (3.12)
rest-client (1.6.7)
rmagick (2.13.1)
rspec (2.8.0)
rspec-core (2.8.0)
rspec-expectations (2.8.0)
rspec-mocks (2.8.0)
rspec-rails (2.8.1)
rubyzip (0.9.5)
sass (3.1.12)
sass-rails (3.1.5)
selenium-webdriver (2.18.0)
slop (2.4.4)
spork (0.9.2)
sprockets (2.0.3)
sqlite3 (1.3.5)
term-ansicolor (1.0.7)
therubyracer (0.9.9)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.10)
tzinfo (0.3.31)
uglifier (1.2.2)
warden (1.1.0)
xpath (0.1.4)
Update
I checked what homebrew installed for mysql. When I understood it correct, this should be the mysql client library version:
$ ls /usr/local/Cellar/mysql
$ 5.5.15
Now I need to get the mysql_config updated to 5.5.15?
Update 2
Solved. This one did the trick:
gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.5.15/bin/mysql_config
Source: Install the mysql2 gem for a specific mysql client version?
Had this problem after upgrading packages in homebrew. The mysql2 gem simply needs to be told to re-compile its non-ruby components.
Assuming homebrew is set up correctly, the following should fix the problem:
gem uninstall mysql2
gem install mysql2 # or bundle install
(depending on your bundler config, you may need to do something more complicated, but this was enough for me)
I have solved the problem based on this tutorial, which helped me installing the correct version of mysql for rails
http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/