RoR + XAMPP + MySQL - Gem安装MySQL问题

时间:2015-01-26 20:01:54

标签: mysql ruby-on-rails ruby

我是PHP开发人员,我与XAMPP合作。我现在决定深入研究Ruby,我想在XAMPP中使用MySQL安装Ruby,我在使用Gem for mysql正确安装时遇到了问题。

我正在执行的命令是:

sudo gem install mysql -- —–with-mysql-config=/Applications/XAMPP/xamppfiles/bin/mysql_config

我得到的错误是:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -r ./siteconf20150126-99463-2b5bwp.rb extconf.rb 
checking for mysql_ssl_set()... no
checking for rb_str_set_len()... yes
checking for rb_thread_start_timer()... no
checking for mysql.h... yes
clang: warning: argument unused during compilation: '-L/Applications/XAMPP/xamppfiles/lib'
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling mysql.c
clang: warning: argument unused during compilation: '-L/Applications/XAMPP/xamppfiles/lib'
linking shared-object mysql/mysql_api.bundle
ld: library not found for -lmysqlclient
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [mysql_api.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/mysql-2.9.1 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-14/2.0.0/mysql-2.9.1/gem_make.out
An error occurred while installing mysql (2.9.1), and Bundler cannot continue.
Make sure that `gem install mysql -v '2.9.1'` succeeds before bundling.

如果我做了locate mysql_config,我就明白了:

/Applications/XAMPP/xamppfiles/bin/mysql_config
/Applications/XAMPP/xamppfiles/bin/mysql_config_editor
/Applications/XAMPP/xamppfiles/man/man1/mysql_config.1
/Applications/XAMPP/xamppfiles/man/man1/mysql_config_editor.1

我已经完成了所有关于SO的帮助请求,但我无法找到解决我特定问题的方法。

任何帮助将不胜感激。如果您需要任何进一步的信息,请与我们联系。

谢谢!

3 个答案:

答案 0 :(得分:1)

我想到了这个:

bundle config build.mysql --with-mysql-config=/Applications/XAMPP/xamppfiles/bin/mysql_config
gem install mysql2 

我的客户:

require 'mysql2'
client = Mysql2::Client.new(:host => "127.0.0.1", :username => "root")

答案 1 :(得分:0)

我注意到OP安装了XAMMP。以下是我在安装XAMPP后必须做的工作。我警告你这不优雅,但它确实允许你避免第二次安装mysql

# first, fake the location of the headers
sudo ln -s /Applications/XAMPP/xamppfiles /usr/local/mysql
# second, let the libraries etc show up where they are expected:
cd /usr/local/mysql/lib/mysql
for i in ../libmysql*; do sudo ln -s $i .; done
# and finally, one last hack for dynamic loading to work
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

我警告过你这有点难看: - )

答案 2 :(得分:0)

这适用于使用RubyGems的MacOS X High Sierra:

    gem install mysql2 -- \
        --with-mysql-config=/Applications/XAMPP/xamppfiles/bin/mysql_config \
        --with-mysql-dir=/Applications/XAMPP/xamppfiles/mysql/ \
        --with-mysql-lib=/Applications/XAMPP/xamppfiles/lib/mysql/ \
        --with-mysql-include=/Applications/XAMPP/xamppfiles/include/ \
        --no-ri --no-rdoc