0

我是新来的rails,我有这个大问题。我正在运行 rails 3.2.9 和 Ruby 1.9.3,我将一个 rails 应用程序从 linux 移植到 windows,但是在 windows 中我遇到了 mysql2 gem 的很多问题。我昨天安装了 mysql2 gem,然后我尝试运行 rake db:migrate 但我有这个输出:

耙中止!
请安装 mysql2 适配器:(gem install activerecord-mysql2-adapter无法加载此类文件 -- mysql2)
C:/Users/RoccaA/Desktop/project/config/environment.rb:5:in `'
Tasks: TOP => db:migrate => environment
(见通过使用 --trace 运行任务进行完整跟踪)

然后这是我的 Gemfile

gem 'rails', '3.2.9'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
#gem 'sqlite3'
# 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 'coffee-rails', '~> 3.2.1'
 gem 'uglifier', '>= 1.0.3'
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 'debugger'
# this gems needs for auth
gem 'cancan'
gem 'devise'
gem 'rolify'
gem 'execjs'
gem 'therubyracer', :platform => :ruby
gem 'populator'
gem 'faker'
gem 'paperclip'
gem 'simple_xlsx_writer'
gem 'roo'
gem 'mysql2', '0.3.11'
gem 'simple_xlsx_writer'
gem 'rake', '~> 10.0.4'
gem 'icalendar'

这是我的 database.yml

development:

  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: emc
  pool: 5
  username: root
  password: root
  socket: /var/run/mysqld/mysqld.sock
testing:

  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: emc
  pool: 5
  username: root
  password: root
  socket: /var/run/mysqld/mysqld.sock
production:

  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: emc
  pool: 5
  username: root
  password: root
  socket: /var/run/mysqld/mysqld.sock

我试图以很多方式解决这个问题,我读到我必须使用 mysql2 版本 < 0.3 但是使用这个版本我有这个输出

警告:这个版本的 mysql2 (0.2.18) 与 Rails 3.1 不兼容,因为 ActiveRecord 适配器被拉入 Rails 本身。
警告:如果您打算在 Rails >= 3.1.x 中使用
rake aborted,请使用 0.3.x(或更高)版本!
nil:NilClass 任务的未定义方法“接受”
:TOP => db:migrate
(通过使用--trace 运行任务查看完整跟踪)**

希望有人可以帮助我,谢谢。

4

5 回答 5

1

试试这个给你 gemfile

而不是使用:

gem 'mysql2', '0.3.11'

用这个:

gem 'mysql2'

这对我有用。

顺便说一句,你有重复的gem

gem 'simple_xlsx_writer'
于 2013-05-15T09:42:48.467 回答
1

算了吧。它使用来自http://www.railsinstaller.org/的 rails 安装程序,它会自动安装 mysql2 和 ruby​​ 和最新版本的 rails

于 2013-05-15T10:32:42.120 回答
0

在 windows 中安装 Rails 和 mysql2 gem 并不像在其他操作系统上那么容易。但我找到了一个很好的答案来回答你的问题:

无法在 Windows 7 上安装 MySQL2 gem

最好的办法是使用 ruby​​installer 在 windows 上安装 rails。

于 2013-05-15T08:02:13.227 回答
0
gem "mysql2", "~> 0.3.11"

接着bundle install

于 2013-05-15T10:01:39.203 回答
0

这里的详细步骤=> http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/

一些关键点是安装正确版本的 mysql、dot net 连接器和 gem。还要确保将 libmysql 文件放在正确的位置。

于 2013-07-23T06:48:29.260 回答