带有mysql问题的Rails 3

Posted

技术标签:

【中文标题】带有mysql问题的Rails 3【英文标题】:Rails 3 with mysql problem 【发布时间】:2011-04-13 16:20:07 【问题描述】:

我的雪豹已更新到 rails 3。以前我使用 sqlite 进行开发。 当我 rake db:create 时它工作正常。

现在我正在尝试在我的 mac 上安装 mysql

    我下载了mysql-5.1.50-osx10.6-x86.dmg 安装了所有三个文件。(mysql-version-osx10.5-x86.pkg, MySQL.prefPane, MySQLStartupItem.pkg) 执行此操作以安装 gem。
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

一切都很好。 gem 创建没有错误。

我用

创建新项目
rails new p1 -d mysql
与..一起处理
耙数据库:创建

它显示

在任何 gem 源中找不到 gem 'mysql2 (>= 0, runtime)'。 尝试运行“捆绑安装”。

然后我安装新的 gem。 sudo gem install mysql2.

同样的问题。我得到了

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

我删除了重复的 mysql2.bundle。结果是一样的。错误。

我已经阅读了网上几乎所有的文章。但是可以解决这个问题。

是不是因为我在雪豹上安装了32位的mysql?还是我的红宝石问题? 为什么rails 3突然要求mysql2 gem,因为我使用'-d mysql'。

Mac 上的 Rails 3 + MySql

谢谢。祝你有美好的一天。

【问题讨论】:

【参考方案1】:

Rails 已切换到 mysql2,请参阅 wycat's blog。

【讨论】:

【参考方案2】:

我做了多次尝试和错误

mysql-5.1.50-osx10.6-x86 mysql-5.1.50-osx10.6-x86_64

我收到了 mysql.prefpane 和 dyld:lazy symbol binding failed: Symbol not found: _mysql_init 问题。

然后我在http://weblog.rubyonrails.org/ 找到了一个帖子。 它说我需要安装

mysql-5.1.50-osx10.5-x86_64

效果更好。解决了这两个问题。但仍然得到 errno: 2. 我无法创建数据库。

通过REBOOT系统解决了errno:2。

【讨论】:

【参考方案3】:

尝试安装http://rubygems.org/gems/ruby-mysql

【讨论】:

【参考方案4】:

我们为此苦苦挣扎了大约两个小时,重新安装了几次 mysql,最终通过“rvm 内爆”和随后重新安装 rvm 解决了我们的问题。这会删除 .rvm 下的所有内容,因此请小心,但如果您使用的是 rvm,则值得一试。

【讨论】:

以上是关于带有mysql问题的Rails 3的主要内容,如果未能解决你的问题,请参考以下文章

为啥带有 Mysql2 Gem ActiveRecord::Base.connection.execute(sql) 的 Rails 3 返回 Array 而不是 Hash?

如何根据从下拉列表中选择的 CATEGORY 来控制 NEW/EDIT 视图中的列标题。带有 MYSQL 的 Ruby on Rails

带有载波的 Rails 3 测试夹具?

带有ajax的rails 3.2

AngularJS - 带有 Rails 3.2.3 的 $http POST

带有文件上传的 Rails 3 多步骤表单