Windows上的Mysql2和Rails

时间:2013-01-04 01:45:03

标签: mysql ruby-on-rails ruby ruby-on-rails-3

因此。我正在尝试开发一个rails应用程序,我试图在Windows 7中这样做。这就是我所做的:

  1. 使用rubyinstaller安装Ruby 1.9.3
  2. gem update
  3. gem install rails
  4. gem update
  5. rails new
  6. 修改了gemfile,将sqlite3替换为mysql2
  7. 正确修改了database.yml
  8. bundle install
  9. gem update
  10. 在我的路径中添加了mysql
  11. 在ruby bin中添加了一个到libmysql c连接器的硬链接
  12. 到目前为止,一切都有效,除非我执行rake db:create:all,结果是:

    rake aborted!
    126: The specified module could not be found.   - C:/Ruby193/lib/ruby/gems/1.9.1
    /gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/1.9/mysql2.so
    C:/Users/username/Documents/workspace/appname/config/application.rb:7:in `<top (
    required)>'
    C:/Users/username/Documents/workspace/appname/Rakefile:5:in `<top (required)>'
    (See full trace by running task with --trace)
    

    跆拳道?

    更新:

    按要求完整追踪:

    rake aborted!
    126: The specified module could not be found.   - C:/Ruby193/lib/ruby/gems/1.9.1
    /gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/1.9/mysql2.so
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.
    rb:2:in `require'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.
    rb:2:in `<top (required)>'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2.rb:9:in
     `require'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2.rb:9:in
     `<top (required)>'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler/runtime.rb:68:in `
    require'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler/runtime.rb:68:in `
    block (2 levels) in require'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler/runtime.rb:66:in `
    each'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler/runtime.rb:66:in `
    block in require'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler/runtime.rb:55:in `
    each'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler/runtime.rb:55:in `
    require'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler.rb:128:in `require
    '
    C:/Users/mschultz/Documents/workspace/recruit/config/application.rb:7:in `<top (
    required)>'
    C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    C:/Users/mschultz/Documents/workspace/recruit/Rakefile:5:in `<top (required)>'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/rake_module.rb:25:in `l
    oad'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/rake_module.rb:25:in `l
    oad_rakefile'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:583:in `
    raw_load_rakefile'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:89:in `b
    lock in load_rakefile'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:160:in `
    standard_exception_handling'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:88:in `l
    oad_rakefile'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:72:in `b
    lock in run'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:160:in `
    standard_exception_handling'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/lib/rake/application.rb:70:in `r
    un'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/rake-10.0.3/bin/rake:33:in `<top (required)>
    '
    C:/Ruby193/bin/rake:23:in `load'
    C:/Ruby193/bin/rake:23:in `<main>'
    

    的Gemfile:

    source 'https://rubygems.org'
    
    gem 'rails', '3.2.9'
    
    # Bundle edge Rails instead:
    # gem 'rails', :git => 'git://github.com/rails/rails.git'
    
    gem 'mysql2'
    
    gem 'json'
    
    # Gems used only for assets and not required
    # in production environments by default.
    group :assets do
      gem 'sass-rails',   '~> 3.2.3'
      gem 'coffee-rails', '~> 3.2.1'
    
      # See https://github.com/sstephenson/execjs#readme for more supported runtimes
      # gem 'therubyracer', :platforms => :ruby
    
      gem 'uglifier', '>= 1.0.3'
    end
    
    gem 'jquery-rails'
    
    # To use ActiveModel has_secure_password
    gem 'bcrypt-ruby', '~> 3.0.0'
    
    # To use Jbuilder templates for JSON
    # gem 'jbuilder'
    
    # Use unicorn as the app server
    # gem 'unicorn'
    
    # Deploy with Capistrano
    gem 'capistrano'
    
    # To use debugger
    # gem 'ruby-debug'
    

2 个答案:

答案 0 :(得分:2)

我正在使用railsinstaller 解决方案:您必须将libmysql.dll添加到Ruby bin,如果您使用--database = mysql参数创建应用程序,请从bundle installator中提示其提示

答案 1 :(得分:0)

如果我可以推荐。

http://railsinstaller.org/

是安装rails的最简单方法。只需确保它与正确的系统软件匹配。

但是,我不认为这是你的安装。我想是你改变了你的数据库。首先,我建议使用PG,我认为它比sql2或sql3好很多。

但是,鉴于您出于某种原因需要sql2,我认为您修改的database.yml已关闭。你说它是正确的,但你可能想要仔细检查它。

我不是专家,但也许在这里有所帮助。祝你好运!