Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mac OSX: MySQL gem install fail (RoR)

I'm running OSX 10.7 (Lion), and recently uninstalled MacPorts because MySQL failed to start. MySQL (64-bit) is now starting, but now I can't install the MySQL gem (Rails). I've tried using the with-mysql-config and the ARCHFLAGS option, neither of which worked. I tried reinstalling Ruby 1.9.3, which also didn't change anything. I'm currently running MySQL 5.1.61 after I thought MySQL 5.0.95 might be causing an issue. Here is the traceback:

Christy$ gem install mysql2
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
    ERROR: Failed to build gem native extension.

    /Users/Christy/.rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
creating Makefile

make
compiling client.c
client.c: In function ‘rb_raise_mysql2_error’:
client.c:98: warning: ISO C90 forbids mixed declarations and code
client.c: In function ‘rb_mysql_client_socket’:
client.c:590: warning: ISO C90 forbids mixed declarations and code
compiling mysql2_ext.c
compiling result.c
linking shared-object mysql2/mysql2.bundle
ld: file not found: /opt/local/lib/libssl.1.0.0.dylib for architecture x86_64
collect2: ld returned 1 exit status
make: *** [mysql2.bundle] Error 1

I tried reinstalling openssl (thinking that file not found: /opt/local/lib/libssl.1.0.0.dylib might be because of that), but it still doesn't work. I'm kind of new to this, so any help would be much appreciated! Thank you!

EDIT: /opt/local/lib/ does not exist. I don't know why it's looking there for the file. Any ideas on how to point it to the right place (locate libssl points to /usr/lib/libssl.0.9.8.dylib and /usr/local/Cellar/openssl/0.9.8s/lib/libssl.0.9.8.dylib, among other places)?

like image 424
trilobyte Avatar asked Feb 19 '12 17:02

trilobyte


3 Answers

My problem was similar and it turned out that I had installed mysql with brew while macports was still installed. After fully uninstalling macports I then uninstalled and reinstalled mysql with brew:

brew uninstall mysql
brew install mysql
like image 114
Jason Rust Avatar answered Oct 15 '22 10:10

Jason Rust


LD_LIBRARY_PATH has a bad path in it. Can temporarily set it for that shell by running export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib ; gem install mysql2.

However, might suggest adding the definition to your .bashrc (or other appropriate .shellrc file) export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib so all shells get it.

like image 44
rnicholson Avatar answered Oct 15 '22 12:10

rnicholson


I had to set the path to my mysql installation which was 5.1. Doing this, then it worked:

export ARCHFLAGS="-arch x86_64"
export PATH=$PATH:/opt/local/lib/mysql51/bin
like image 44
Geir Eliassen Avatar answered Oct 15 '22 12:10

Geir Eliassen