How to install mysql2 gem in Ubuntu

Got an error message when you install the mysql2 gem in Ubuntu? Before you install mysql2, make sure you have libmysqlclient-dev installed or you’ll get the following:

[code lang=”bash”]kahwee@kahwee-desktop:/$ gem install mysql2
Building native extensions. This could take a while…
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.

/home/kahwee/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb
checking for rb_thread_blocking_region()… 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… yes
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
–without-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=/home/kahwee/.rvm/rubies/ruby-1.9.2-p0/bin/ruby
–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

Gem files will remain installed in /home/kahwee/.rvm/gems/ruby-1.9.2-p0/gems/mysql2-0.2.6 for inspection.
Results logged to /home/kahwee/.rvm/gems/ruby-1.9.2-p0/gems/mysql2-0.2.6/ext/mysql2/gem_make.out[/code]

To resolve it, install libmysqlclient-dev:

[code lang=”bash”]sudo apt-get install libmysqlclient-dev[/code]

And now you can install mysql2 successful:

[code lang=”bash”]kahwee@kahwee-desktop:/$ gem install mysql2
Building native extensions. This could take a while…
Successfully installed mysql2-0.2.6
1 gem installed
Installing ri documentation for mysql2-0.2.6…
Installing RDoc documentation for mysql2-0.2.6…[/code]

Great!

[I tried this on Ubuntu 10.10.]

7 thoughts on “How to install mysql2 gem in Ubuntu”

  1. Hi KahWee, thanks for the write-up. I’m getting the same error and have been researching solutions for hours now. Unfortunately, even after the commands you suggested, I’m still getting the same error. I ran $ sudo apt-get install libmysqlclient-dev
    but it said “libmysqlclient-dev is already the newest version.” I ran $ sudo gem install mysql2 again and still got
    “ERROR: Error installing mysql2:
    ERROR: Failed to build gem native extension.

    /usr/bin/ruby1.8 extconf.rb
    extconf.rb:2:in `require’: no such file to load — mkmf (LoadError)
    from extconf.rb:2”

    Any ideas?

    Thank you

  2. On Debian (or Ubuntu) systems, just install libmysqlclient-dev package using:

    sudo apt-get install libmysqlclient-dev
    and then:

    gem install mysql
    It will be installed without any error.

Leave a Reply

Your email address will not be published. Required fields are marked *