首先附上我的工作环境
系统:Mac OS X 10.7.4
Ruby:ruby 1.9.3p194
Rails:Rails 3.2.6
Mysql:5.5.27 MySQL Community Server
由于我手上的书籍都是从图书馆借来的,他们的 rails 版本普遍比较早,虽然都是默认 mysql 数据库,但都没提到 rails 与 mysql 的连接问题,在他们看来这似乎不需要任何说明的。
但事实是,这是个灰常严肃的问题!至少在我这个版本下是的。
按书上操作,只会得到一个结果
ActiveRecord::ConnectionNotEstablished
目前为止,这个问题百度无法解决,我是在一个视频中无意看到的
原来在这个版本里,gem 里面内含了 sqlite3 的驱动包,但是没有 mysql 的,需要自己安装
安装方法:
1.cd 到你的项目目录 比如我的是
cd ruby/demo
2.安装 mqsql 驱动包(插件)
gem install mysql
3.在项目的 Gemfile 文件中包含 mysql 驱动包
vi Gemfile
新加一行
gem 'mysql'
**感谢2L @ywjno 提醒 用Mysql2才是王道**
gem install mysql2
gem 'mysql2'
好,到这儿就安装完成了,重新启动 WEBrick 服务。这时你有可能得到两种结果:
成功了,或者报错:
undefined method 'init' for Mysql:Class
这又是怎么回事儿呢?
研究过 Mac 下 Mysql 与 Apche 连接的同学应该明白的,没错,因为 Mac 下 Mysql 的安装目录与 Liunx 等使用的默认安装路径是不一样的,rails 去找默认路径当然找不到,这个时候只要只要导入 mysql lib 环境变量即可。
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
现在在运行,没问题了是不是? 文章大部分解说都是自己参详的,看我还在研究这个就能明白我也才入门的小白,若有错误之处,请各位大神指正!