synapse
synapse

Reputation: 5728

How to install MySQL gem on Mac OS X

What do I need to install mysql gem on Mac OS X ? I'm getting error "failed to build native extensions".

Upvotes: 9

Views: 28115

Answers (10)

Krule
Krule

Reputation: 6476

Install MySQL first, either by using binary or Homebrew.

Then:

gem install mysql2

Or:

gem install ruby-mysql

Just pick one and you are good to go.


Edit

In case you upgraded to MySQL version 5.6.12 on OS X, mysql2 will fail to compile. Solution is to downgrade MySQL as described here: https://stackoverflow.com/a/17252887/45254


Edit2

In case you don't want to have mysql installed (maybe you use docker to manage your services) but do want to use mysql2 gem, you can instead install mysql-connector-c (using homebrew).

Upvotes: 20

tirdadc
tirdadc

Reputation: 4703

I installed MySQL with Homebrew and I had to use this to finally be able to upgrade the gem:

gem install mysql2 -- --with-mysql-dir=/usr/local/opt/mysql/

Upvotes: 4

tessie
tessie

Reputation: 1034

I came across this issue while setting up MySQL gem on MacOs Mojave .This worked for me

1 Ensure Xcode command line tools are installed. xcode-select --install

  1. For me the build was still failing with some header files missing which you have to install open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

This link pointed to right direction. Can't compile C program on a Mac after upgrade to Mojave

Upvotes: 0

I'm using Mac OS X 10.10 (Yosemite), and to me worked with the command bellow:

gem install mysql2 -- \ --with-mysql-config=/usr/local/mysql/bin/mysql_config

Upvotes: 3

codener
codener

Reputation: 486

For me it did the most easy:

brew install mysql
gem install mysql

Brew is a package manager for Mac OS, a must have. Using it to install mysql first brings everything that the gem command is missing.

Upvotes: 4

Saikrishna Rao
Saikrishna Rao

Reputation: 615

if you already have MySQL server running elsewhere on the network and would like to still install the gem without having to install MySQL try the following

brew install mysql-connector-c

followed by

gem install mysql

Upvotes: 10

avillagran
avillagran

Reputation: 57

I'm using Mac OS X Mountain Lion, and installed MySQL with DMG.

gem install do_mysql -- \ --with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib --with-mysql-include=/usr/local/mysql/include

and

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

This works for me ;)

Upvotes: 6

JB Hewitt
JB Hewitt

Reputation: 91

I'm running Mac OS X Lion with Homebrew.

The correct command to install a ruby gem is…

gem install mysql -- \ --with-mysql-config=/usr/local/bin/mysql_config 

Upvotes: 9

Alexandre Quintela
Alexandre Quintela

Reputation: 31

I install MySQL with DWG mysql_config will be located at /usr/local/mysql/bin/mysql_config

gem install mysql -- \ --with mysql-config=/usr/local/mysql/bin/mysql_config 

Upvotes: 1

Theo
Theo

Reputation: 132852

Some time back I wrote some instructions on my blog on how to do it in 10.6, but I think it's the same in 10.5.

I comes down to this command:

ARCHFLAGS="-arch x86_64" gem install mysql -- \
  --with-mysql-config=/path/to/mysql_config

but you need to find the real value for /path/to/mysql_config. My blog post has a few tips, but there's one very important thing: you must have installed MySQL with headers. The official .pkg installer from MySQL doesn't IIRC. The best thing to do is to install MySQL with Homebrew (in the post I use examples from a MacPorts install, but that's because Homebrew wasn't mature when I wrote it).

If you install MySQL with Homebrew mysql_config will be located at /usr/local/bin/mysql_config and if you install it with MacPorts it will be at /opt/local/lib/mysql5/bin/mysql_config.

I concur with the other answer that suggest that you install the mysql2 gem instead of mysql. I think the command above should work for mysql2 too.

Upvotes: 15

Related Questions