How to use "mysql2" gem in Rails 3 application on Windows 7?

Misha Moroshko picture Misha Moroshko · Apr 25, 2011 · Viewed 15.4k times · Source

I try to install the mysql2 gem on Windows 7 32-bit.

I run:

gem install mysql2

and I get the following error:

ERROR:  Error installing mysql2:
        The 'mysql2' native gem requires installed build tools.

Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'

Any ideas what could cause this error, and how to solve this ?


UPDATE

I did everything as described here, but I can't figure out the last step:

gem install mysql2 -- 
     '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.1\lib\opt" 
      --with-mysql-include="c:\Program Files\MySQL\MySQL Server 5.1\include"'

I understand that I should change the paths to the correct paths in my system, but I can't find the lib\opt and the include directories in my WAMP MySQL installation. I use WAMP 2.1.

Please advise.

Answer

konung picture konung · Sep 6, 2011

Here is a proper solution for anyone interested, that doesn't mess up your current installation of mysql server -

EDIT : Make sure you download the right version on MySQL server. :

if you intend to connect to a 6.0 or 5.5 server - download those binaries. I'm connecting to mysql 5.1 - hence my example. Also keep in mind latest mysql2 gem ( v 0.3.7) was tested against mysql server 6 - hence it keeps failing to build on windows for earlier versions. also make sure you use the right libmysql.dll in your ruby folder.

  1. Download a zip file with mysql server 5.1 NOT the msi one. Make sure it's 32-bit NOT 64-bit. (From here)

  2. Since there is no installer file with this, create a folder c:\mysql-gem-install - you can remove it once you finish.

  3. Extract all the files from the zip file into the folder you just created.

  4. now run this command

     gem install mysql2 --  '--with-mysql-lib="c:\mysql-gem-install\lib\opt"  --with-mysql-include="c:\mysql-gem-install\include"'
    

I just installed mysql2 gem v. 0.3.7

EDIT 1 One more thing: make sure you run the command in Command Prompt directly. As in not PowerShell or Consol2 - for some reason if you try that it will give you and error " invalid option" - has to do with the way -- is parsed.

EDIT 2 I just was doing a blank windows 7 install and one thing I ran into is that you need to add one more step to this: check to see if there is libmysql.dll in your ruby bin directory, if not copy one over from your mysql install. It should be of the same version as your mysql2 build.