您的位置:首页 > 编程语言 > Ruby

在Windows Vista上安装Ruby on Rails和配置MySQL

2009-02-25 09:01 567 查看
安装Ruby On Rails

1. 下载Ruby,我用的是1.8.6,下载地址:http://rubyforge.org/frs/?group_id=167。下载后直接双击安装就可以了。

2. 在命令行窗口中,运行gem命令,看是否已经包含了rubygems。如果没有,则下载,然后运行ruby setup.rb安装;若已经包含,进入第3步。

3. 在命令行窗口中,直接运行gem install rails开始安装Rails。

4. 运行rails myapp就可以创建一个名称myapp的ROR程序。

这样就完成了Ruby On Rails的安装,并且创建了myapp程序,接下来就为其添加MySQL数据库支持。



安装MySQL

1. 下载MySQL(http://dev.mysql.com/downloads/mysql/5.1.html#win32),这里使用的MySQL5.1.31.

2. 安装MySQL,并配置MySQL,其中要选中Include Bin Directory in Windows PATH。

3. 创建数据库。运行MySQL Command Line Client,登录后运行:

mysql> create database myapp_development;



配置MySQL

1. 首先运行gem install mysql命令,绑定mysql数据库。

2. 编辑myapp目录中config/database.yml文件。其中默认的可能是SQLite数据库,这里修改为MySQL数据库,以development为例:

development:
  adapter: mysql
  encoding: utf8
  database: myapp_development
  username: root
  password: root


3. 注意这时候应该重启电脑,否则如果直接启动服务器,访问http://localhost:3000,页面上就弹出libmysql.dll错误提示。重启后,再访问就可以在首页中看到环境信息,如下:

Ruby version1.8.6 (i386-mswin32)
RubyGems version1.3.1
Rails version2.2.2
Active Record version2.2.2
Action Pack version2.2.2
Active Resource version2.2.2
Action Mailer version2.2.2
Active Support version2.2.2
Application rootD:/rails/myapp
Environmentdevelopment
Database adaptermysql
Database schema version10
TroubleShooting

数据库已经连上了,下面就是创建数据库表了。由于已经在Ubuntu上创建过类似程序,这里就把编写Migration文件的步骤和时间省去了,直接运行rake db:migrate,就在这时问题出现了。问题表现出两种情况:

1. 错误信息为:

(in D:/rails/myapp)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
rake aborted!
undefined method `each' for #<Mysql:0x5cdda84>

在该种情况中,可能会有部分migration运行成功,但是并不能顺利执行。

2. 错误信息中包含了:ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/module/introspection.rb:73: [BUG] Segmentation fault

无论这两种情况有时候会交替出现,当然导致的结果就是migration不能顺利执行。



原因分析:MySQL中包含的libmysql.dll不能正常运行。



解决方法:
替换自带的libmysql.dll,该方法已验证,下载地址:http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll 保存到ruby安装目录的bin中。
重新运行rake db:migrate,终于看到了

(in D:/rails/myapp)
== AddInitialData: migrating =================================================
== AddInitialData: migrated (0.2270s) ========================================

== AddUserData: migrating ====================================================
== AddUserData: migrated (0.1280s) ===========================================

== CreateSessions: migrating =================================================
-- create_table(:sessions)
-> 0.0810s
-- add_index(:sessions, :session_id)
-> 0.2780s
-- add_index(:sessions, :updated_at)
-> 0.2270s
== CreateSessions: migrated (0.6020s) ========================================

== CreateAppliances: migrating ===============================================
-- create_table(:appliances)
-> 0.0550s
== CreateAppliances: migrated (0.0590s) ======================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: