6

我正在尝试在 Rails 上安装 ruby​​,到目前为止,所有内容都已安装,但是当我尝试使用创建数据库时rake db:create,出现一个奇怪的错误:

dyld:惰性符号绑定失败:找不到符号:_mysql_get_client_info 引用自:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle 预期在:平面命名空间

dyld:找不到符号:_mysql_get_client_info 引用自:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle 预期在:平面命名空间

跟踪/BPT 陷阱:5

我正在开发 osx 山狮最新更新。有没有人有适合我的解决方案?

4

7 回答 7

4

你可以试试这个。

sudo gem install mysql2 — –with-mysql-config=/usr/local/mysql/bin/mysql_config

请务必使用您的位置修改 mysql 配置路径。

您可以使用以下命令确定这一点。

locate mysql_config

利用上面命令给出的路径。

于 2013-03-08T12:07:50.100 回答
3

该消息告诉您链接了错误的版本 32 与 64

在 OSX 上,您可以看到安装的 mysql 上的所有版本

cd /usr/local/

并在 /usr/local/mysql-xxxx/bin/mysql_config 中找到正确的配置

就我而言,它是:

gem uninstall mysql2
sudo gem install mysql2 -- 
--with-mysql-config=/usr/local/mysql-5.5.27-osx10.6-x86_64/bin/mysql_config

如此处所述:https ://www.ruby-forum.com/topic/1440086

于 2014-03-01T10:11:39.450 回答
2

关于这个有很多问题,至少有同样多的答案在某些时候有效,但在其他时候无效。在尝试了大多数之后,我注意到 gem 是 64 位的,而 mysql 安装是 32 位的。

要解决这个问题:

  • 安装 64 位 mysql
  • 在 /usr/local 中设置符号链接以指向 64 位版本
  • 在您的配置文件中设置 PATH 和 DYLD_LIBRARY_PATH 以包含正确的版本
  • 卸载 mysql2 gem
  • 安装 mysql2 gem
  • ruby 现在与 mysql 配合得很好!

我没有包含确切的代码,因为这往往会随您的环境而变化。

于 2013-11-23T04:10:06.803 回答
1

我在这个问题上遇到了困难。我尝试了上面所有的答案,所以我无法确定是什么组合导致了修复。我已经安装了 mysql 并从 mysql 的网站重新安装。在我遵循以下操作后,它终于开始工作了。

这是在 Mavericks 上使用 rails 4 并安装了 brew

brew install mysql

我不推荐这个过程.. 只是注意到它在经历了数小时的挫折后对我有用。

ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

sudo gem uninstall mysql
gem uninstall mysql2
gem install mysql
gem install mysql2
于 2014-07-25T16:44:28.680 回答
0

您需要安装 64 位 MySql 服务器。不要忘记重新安装 mysql gem。

于 2014-06-14T08:56:26.317 回答
0

I had same problem. mysql2 version was 0.4.9, downgraded it to 0.4.5 and problem solved

于 2017-09-21T08:53:37.023 回答
0

由于某种原因,我安装了两个版本的 mysql(32 位和 64 位)。

确保您的 $MYSQL 环境变量(很可能在 ~/.bash_profile 或 ~/.profile 中找到)指向 64 位版本。

正如其他答案所提到的,在安装 gem 时,还要确保指向正确的 mysql 安装。

于 2016-06-11T18:30:16.237 回答