首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails、MySQL和雪豹

Rails、MySQL和雪豹
EN

Stack Overflow用户
提问于 2009-06-13 22:54:00
回答 10查看 63.9K关注 0票数 68

我用我们在WWDC得到的光盘升级到了雪豹。

现在尝试运行我的一些rails应用程序时遇到sql问题

代码语言:javascript
复制
    (in /Users/coneybeare/Projects/Ambiance/ambiance-server)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
Importing all sounds in /Users/coneybeare/Projects/Ambiance/ambiance-sounds/Import 32/Compressed/

 -- AdirondackPeepers.caf
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
dlopen(/opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib
  Referenced from: /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
  Reason: image not found - /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle

(See full trace by running task with --trace)

我发誓我以前修过一次。问题是

代码语言:javascript
复制
sudo gem install mysql

不工作,并给出错误:

代码语言:javascript
复制
 Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
    ERROR: Failed to build gem native extension.

/opt/local/bin/ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no


Gem files will remain installed in /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out

有没有人让mysql在雪豹上使用rails?如果是这样的话,你的设置是什么,更好的是,我可以做什么来重现它?

EN

回答 10

Stack Overflow用户

发布于 2009-08-28 05:25:39

将mysql重建为64位或安装64位版本很重要,但您还需要确保将mysql gem的本机部分也构建为64位(如果您使用的是原始的Intel Core Duo macs,则这一点不适用)。

下面是这个神奇的命令:

代码语言:javascript
复制
env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

无论何时在Snow Leopard上使用本地组件进行gem安装,都应该按照上面所示的方式设置ARCHFLAGS。

票数 10
EN

Stack Overflow用户

发布于 2010-08-24 02:30:28

如果你使用的是bundler,你可以使用"bundle config“为mysql设置正确的构建参数,如下所示:

代码语言:javascript
复制
bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
票数 7
EN

Stack Overflow用户

发布于 2009-08-06 21:10:27

我为此斗争了很长一段时间,最终在雪豹上让它工作了。我最终从源代码安装了Ruby、RubyGems和MySQL (请参阅安装Ruby和RubyGems的Hivelogic tutorial )。MySQL教程链接在底部)。我终于得到了gem的安装,但我还是得到了

代码语言:javascript
复制
dyld: lazy symbol binding failed: Symbol not found: _mysql_init
  Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
  Expected in: flat namespace

dyld: Symbol not found: _mysql_init
  Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
  Expected in: flat namespace

Trace/BPT trap

我最终删除了mysql.bundle (我不知道这是做什么的),这一切都起作用了。

代码语言:javascript
复制
sudo rm -f /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle

希望这能帮助到一些人。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/991708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档