RoR + XAMPP + MySQL - Gem安装MySQL问题
问题描述:
我是PHP开发者,我使用XAMPP。我决定现在就深入Ruby,并且我想从XAMPP for Ruby中使用MySQL安装,并且遇到了让Gem for mysql正确安装的问题。RoR + XAMPP + MySQL - Gem安装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的帮助请求,并且我无法找到解决特定问题的解决方案。
任何帮助,将不胜感激。如果您需要更多信息,请告诉我。
谢谢!
答
我注意到OP安装了XAMMP。这是我在安装XAMPP之后必须做的工作。我警告你,这是不优雅,但它确实让你避免
# 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
我警告你,这是一个有点难看:-)
答
这为我工作在Mac OS的MySQL安装第二X海伊谢拉使用的RubyGems:
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
答
我想通了这一点:
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")
尝试使用mysql2而不是mysql。 这里有一些说明http://*.com/questions/17758945/cant-install-mysql2-on-mac-os-10-9 – 2015-01-26 20:04:56