rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 程序开发 » Ruby

windows下配置Ruby on Rails和mysql驱动

1、安装Ruby,http://rubyforge.org/projects/rubyinstaller/ 找到"最新发布项目",点击"下载",进入下载列表页面。

该页面列出了Ruby当前的所有版本,写本文时最新版本是:1.8.6-25。版本发布日期:2007-03-18

2、下载"ruby186-25.exe",大约22M。然后安装。One-Click Installer 一键安装,很适合新手。

3、学过Java的都知道,接下来需要配置ClassPath,在环境变量中新增环境变量名"RUBY_HOME",变量值"D:\ruby",该值以本机Ruby安装目录为准。然后在 path 加入"%BURY_HOME%\bin"。

4、测试Ruby是否安装成功

在命令行下运行 ruby -v ,显示如下:

ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]

如果不放心,再运行 ruby -e 'puts "hello world"' ,显示如下:

hello world

至此,Ruby的安装告一段落,接下安装 Rails。

5、安装Rails

   1)gem update --system"  to update gems version
   2)install rails....  "gem install rails -r"

http://www.javaeye.com/topic/35929       关于Rails入门可以参考一下

6、这个才是本文的重点,关于 Mysql数据库驱动配置,我的弯路就是在这里折腾的。

一、安装Mysql 5.0, http://dev.mysql.com/downloads/mysql/5.0.html 下载一个 Windows (x86) ZIP/Setup.EXE,如果是64位操作系统,请下载对应的版本。 我用的是 AMD64/WinXP

二、安装mysql时,记得字符编码要选择"utf-8",我之前用的gb2312,命令行读取没问题,但是用Ruy读出来的都是乱码。

三、在Mysql安装目录的 bin 目录下,找到 ibmySQL.dll ,将该文件Copy到 Ruby安装目录的 bin目录中。这里也有一个版本的问题。我数据库用的是Mysql 5.0.41,每次操作数据库都会报"内存分配错误",没办法,只好 使用Mysql 5.0.37的 ibmySQL.dll 文件,问题解决。

四、http://rubyforge.org/projects/mysql-win ,下载 mysql-2.7.3-mswin32.gem ,这是 mysql_Ruby驱动程序。

命令行,进入该文件所在目录,运行 gem install mysql-2.7.3-mswin32.gem ,安装成功即可。

  你也可以在 mysql官方网站下载 ruby的驱动,该网站附带安装步骤,API文档。

五、测试 mysql 驱动程序。

新建 mytest..rb ,代码如下:

ruby 代码 require 'mysql'    begin      dbh = Mysql.real_connect("localhost", "root", "root", "library",3306)       ## 创建表,插入计录,查询计录    dbh.query("drop table if exists test_rb")    dbh.query("create table test_rb(id int,name char(20))")    dbh.query("insert into test_rb values(1,'张三'),(2,'李四')")    printf "%d rows were inserted\n",dbh.affected_rows          res = dbh.query("SELECT name FROM test_rb")    puts "========\n"   while row = res.fetch_row do    printf "%s, %s\n", row[0], row[1]    end    puts "========\n"   puts "Server version: " + dbh.get_server_info    rescue Mysql::Error => e    puts "Error code: #{e.errno}"    puts "Error message: #{e.error}"    puts "Error SQLSTATE: #{e.sqlstate}" if e.respond_to?("sqlstate")    ensure    dbh.close if dbh    end    在命令行运行 ruby mytest.rb ,结果如下:

2 rows were inserted 张三, ========
Server http:// version: 5.0.41-community-nt

====

执行rails mybook --d mysql 创建 rails 框架

转自:http://hi.baidu.com/yangtao309/blog/item/2ef42008f71d51d563d98619.html

==========================================

在这里用的rails版本是 2.3.4, 对数据库做migerate的时候会出现错误,如:

Mysql::Error: query: not connected: CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB

这是是因为libmySQL.dll的版本不好,似Rails 2.3.4不太支持mysql。

解决办法:

下载本文后面的libmySQL.dll,复制到ruby\bin路径下; 重启MySQL。(不用重启也可以)。 libmySQL.dll: http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll
顶一下
(0)
踩一下
(0)