Ruby开发环境的终极配置(Railsinstaller1.3.0+mysql5.1.61)

1.安装Railsinstaller1.3.0

Packages included are:

安装成功可以使用ruby -v来查看版本号。另外这个地方的环境变量可配也可不配,没有影响。不过如果要是在命令行下面运行.rb文件的话,想要不在.rb前面加ruby就运行的话,需要设置.rb文件的默认打开方式为ruby即可。

2.安装mysql-5.1.61,安装方法参看http://www.cnblogs.com/huzhiwei/archive/2012/02/22/2363811.html

安装完成后使用mysql –u root –p来检验是否安装成功。

3.连接ruby与Mysql

方法一:

这一步是最麻烦的,也是最容易出问题的,在前面的日志中已经给出来ruby1.9.2与Mysql5.5的解决方案(使用新版本的同学,可以参考前面的日志)。

安装MySQL gem(这一步与前面一样)

安装了MySQL之后,如果你的Ruby还没有mysql驱动支持(集成的Instant Rails中已经有了),你需要安装Ruby中对MySQL的驱动支持。

gem install mysql

这将安装2006/12/29日的mysql-2.7.3-mswin32.gem。需要注意的是,这个驱动是支持Ruby 1.8的,目前在Windows(mswin32)上还没有兼容1.9的gem出现(mysql-ruby-2.8x已经支持1.9了,但是并没有编译好的gem出现,需要自己编译——而整个编译会很痛苦)。

2008/8/21日发布了 mysql-2.8.1-mswin32.gem,这个版本支持Ruby 1.9了。

安装完成后,在irb下面调用require ‘mysql’报错:loaderror:no such file –mysql。然后需要到http://www.tmtm.org/en/ruby/mysql/下载并安装ruby-mysql

Install
# ruby ./install.rb

此时报错会发生改变,为:

Client does not support authentication protocol requested by server; consider upgrading MySQL client。

请使用以下两种方法之一

其一:

mysql> SET PASSWORD FOR
    -> 

'some_user'

@

'some_host'

 = OLD_PASSWORD(

'newpwd'

);

其二:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
    -> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;

实例:mysql> SET PASSWORD FOR –

> root@localhost = OLD_PASSWORD('newpwd'); 这样配置之后运行没有问题了,不过不知道为什么输出的版本号却不是正确的,但是对数据库的操作没有问题,所以就没有再研究下去。并且这种配置也不会出现http://www.cnblogs.com/huzhiwei/archive/2012/02/27/2369423.html的问题。
方法二:
通过DBI连接数据库。
DBI模块的安装可以参照:http://www.cnblogs.com/huzhiwei/archive/2012/02/27/2369789.html
安装完成后可以使用irb命令require ‘dbi’来检查是否安装正确。我出现了以下问题:
问题1gems/1.8/specifications/tilt-1.3.3.gemspec]: invalid date format in specification: "2011-08-25 00:00:00.000000000Z"
解决方案:

Search "spec" files in your Ruby directory: *C:\Ruby187\lib\ruby\gems\1.8\specifications*

If a gemspec file contains something like this: s.date = %q{2011-10-13 00:00:00.000000000Z} Then delete the 00:00:00.000000000Z part: s.date = %q{2011-10-13}

After saving those gemspec files, the problem is solved.

问题2rb:57: undefined method `deprecate' for DBI::Date:Class (NoMethodError)

解决方案:网上说是因为版本原因造成的,所以我按照晚上的方法安装了旧版本deprecated-2.0.1.gem,但是问题还是没有解决,于是我又安装了deprecated-3.0.0.gem,问题依然存在,不过我把deprecated-3.0.0.gem卸载掉问题就解决了。感觉这种解决方法很无语。

问题3:在执行dbh=DBI.connect("DBI:Mysql:my(database):localhost","root","password"),报错:dbi.rb:300:in `load_driver': Unable to load driver 'Mysql'

解决方案:从网上下载一个旧版本的libmySQL.dll,将其放到ruby的bin目录,还要执行gem install dbd-mysql。

下载地址:

http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll

也可从这里下载:

libmySQL

以上就是在配置过程中出现的问题,感觉这些开发软件配置起来问题就一大堆,这还是没有开发呢,让人很不爽啊,不过全解决了,还是值得庆幸的。

原文地址:https://www.cnblogs.com/huzhiwei/p/2370274.html