bundle install problem: mysql.h is missing

前端 未结 12 1498
迷失自我
迷失自我 2020-12-07 17:02

in my mac OSX 10.6 32 bit, I can install mysql2 gem quite easily, but not in mini mac 10.6 64bit server.

I have installed MySQL 5.5.11 in troublesome server, while i

相关标签:
12条回答
  • 2020-12-07 17:55

    for people who didn't use brew to install mysql and use mysql 5.6 and higher:

    according to this answer

    you need to edit mysql_config which was placed in my case here: /usr/local/mysql-5.6.12-osx10.7-x86_64/bin

    and change cflags and cxxflags to:

    cflags="-I$pkgincludedir  -Wall -Os -g -fno-strict-aliasing -DDBUG_OFF " #note: end space!
    cxxflags="-I$pkgincludedir  -Wall -Os -g -fno-strict-aliasing -DDBUG_OFF " #note: end space!
    

    after this manipulations

    $ gem install mysql2 -v '0.3.13'
    

    goes flawlessly

    0 讨论(0)
  • 2020-12-07 18:00

    This method is for Rails 3.1.0 (and hopefully up) on 64 bit machine. I used on Ruby-1.9.2-p180.

    This blog answered it: http://www.tatvartha.com/2010/10/installing-mysql-gem-with-bundler-on-snow-leopard/

    Basically, the method above: $ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

    may work, but without bundler.

    To do it with bundler, first must run this on terminal:

    bundle config build.mysql2 --with-mysql-config=/usr/local/mysql/bin/mysql_config
    

    Note "mysql2" not "mysql" as shown in that blog.

    That adds a config to ~/.bundle/config file

    Then add this to ~/.bash_profile:

    export ARCHFLAGS="-arch x86_64"
    

    That is the same with telling bundler to run the command on top of this post.

    0 讨论(0)
  • 2020-12-07 18:02

    For those on Fedora 21, and you already installed mysql-devel:

    yum install redhat-rpm-config
    

    solved the problem for me. see: redhat docs

    0 讨论(0)
  • 2020-12-07 18:03

    Ok guys for me the solution was:

    $ sudo brew install mysql
    
    $ sudo env ARCHFLAGS="-arch i386" gem install mysql -- \
      --with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib \
      --with-mysql-include=/usr/local/mysql/include
    

    source: http://wonko.com/post/how-to-install-the-mysqlruby-gem-on-mac-os-x-leopard

    OR :

    $sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- \
      --with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib \
      --with-mysql-include=/usr/local/mysql/include
    

    If your mysql version is 64Bits

    After that i had a lot of problems because if i want to create the database:

    $: bundle exec rake db:reset
    

    i was receiving this error:

    dyld: lazy symbol binding failed: Symbol not found: _mysql_init
      Referenced from: /Users/workdreamer/Sites/cavortify/implementation/cavortify/mysql/ruby/1.8/gems/mysql-2.8.1/lib/mysql_api.bundle
      Expected in: flat namespace
    
    dyld: Symbol not found: _mysql_init
      Referenced from: /Users/workdreamer/Sites/cavortify/implementation/cavortify/mysql/ruby/1.8/gems/mysql-2.8.1/lib/mysql_api.bundle
      Expected in: flat namespace
    

    The solution is: On your gemfile add: gem "ruby-mysql"

    Ok, one day and a half to find the solution.

    Have a nice day!

    0 讨论(0)
  • 2020-12-07 18:05

    My problem was the result of first installing MySql via the downloadable binary. It was originally installed at version 5.5.28. I then attempted to install via homebrew. Brew installed version 5.6.x. HOWEVER in the process of installing via homebrew, the symlink for /usr/local/mysql was still pointed to 5.5.28.

    Update your symlink to whichever version was installed via homebrew.

    ex: /usr/local/mysql -> /usr/local/Cellar/mysql/5.6.13/

    This could be just part of the solution.

    0 讨论(0)
  • 2020-12-07 18:06

    For mariadb:

    sudo apt-get install libmariadbclient18 libmariadbclient-dev
    

    Then

    gem install mysql2
    

    could be successfully installed.

    0 讨论(0)
提交回复
热议问题