Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Not able to use mysql2 gem with Rails 4.1.5 in RubyMine

I am trying to use the mysql 2 gem with Rails, so I added gem 'mysql2'. I am not able to install it using bundle install, and it gives me this error.

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /Users/Ben/.rvm/rubies/ruby-2.2.0/bin/ruby -r ./siteconf20150307-17143-1jx7cob.rb extconf.rb 
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/Users/Ben/.rvm/rubies/ruby-2.2.0/bin/$(RUBY_BASE_NAME)
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/lib
        --with-mysql-config
        --without-mysql-config
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/lib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-mlib
        --without-mlib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-zlib
        --without-zlib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-socketlib
        --without-socketlib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-nsllib
        --without-nsllib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-mygcclib
        --without-mygcclib
        --with-mysqlclientlib
        --without-mysqlclientlib

extconf failed, exit code 1

Gem files will remain installed in /Users/Ben/.rvm/gems/ruby-2.2.0/gems/mysql2-0.3.18 for inspection.
Results logged to /Users/Ben/.rvm/gems/ruby-2.2.0/extensions/x86_64-darwin-14/2.2.0/mysql2-0.3.18/gem_make.out
An error occurred while installing mysql2 (0.3.18), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.18'` succeeds before bundling.

I have no idea how to get it to work, so any help would be appreciated.

Here is some info on my computer. ruby -v => ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]

gem 'rails', '4.1.5' (rails -v won't work)

bundler -v => Bundler version 1.8.4

OS: Mac Yosemite

like image 995
Ben Aubin Avatar asked Mar 07 '15 17:03

Ben Aubin


2 Answers

For Mac Users:

brew install mysql
gem install mysql2

For Ubuntu Users:

sudo apt-get install mysql-server mysql-client libmysqlclient-dev
sudo gem install mysql2

Installing the libmysqlclient-dev gives you the necessary files to compile the mysql2 gem which is what Rails will use to connect to MySQL when you setup your Rails app.


Finally, run bundle install

like image 90
Sharvy Ahmed Avatar answered Sep 29 '22 11:09

Sharvy Ahmed


try to install 'libmysqlclient-dev' first

sudo apt-get install libmysqlclient-dev

and after run

bundle install
like image 33
rfellons Avatar answered Sep 29 '22 12:09

rfellons