新手问题 Mac 下 Rails 连接 Mysql 的一点点心得

IChou · September 08, 2012 · Last by sensi replied at February 23, 2014 · 7563 hits

首先附上我的工作环境

系统: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/

现在在运行,没问题了是不是? 文章大部分解说都是自己参详的,看我还在研究这个就能明白我也才入门的小白,若有错误之处,请各位大神指正!

这个确实是很新的新手问题

现在一般都用gem 'mysql2'

话说 Mysql 要收费了。。。

#2 楼 @ywjno mysql2 与 mysql 的区别有什么?哪里有文档啊?

ruby-1.8 使用 mysql ruby-1.9 使用 mysql2 jruby 使用 activerecord-jdbcmysql-adapter

#5 楼 @zhangyuan 看来我要学的还很多啊。。得加油

@xworm 其实你看一下 redmine 的 Gemfile 就明白用什么数据库驱动了 :)

#2 楼 @ywjno gem 'mysql2'

王道。

我被提示安装这玩意:activerecord-mysql-adapter,但 gem install 却安装不上,是什么情况?

为什么 mysql2 才是王道///?????????

You need to Sign in before reply, if you don't have an account, please Sign up first.