请安装mysql2适配器

时间:2013-05-15 07:51:34

标签: ruby-on-rails rake mysql2 dbmigrate

我是rails的新手,我遇到了这个大问题。我正在运行rails 3.2.9和Ruby 1.9.3,我做了一个从linux到windows的rails应用程序的移植,但是在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''
  任务:TOP => db:migrate =>环境
  (通过使用--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中使用它,请使用0.3.x(或更高版本)版本   耙子流产!
  未定义的方法`accept'代表nil:NilClass
  任务:TOP => DB:迁移
  (通过使用--trace运行任务查看完整跟踪)**

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

5 个答案:

答案 0 :(得分:1)

试试这个gemfile

而不是使用:

gem 'mysql2', '0.3.11'

使用它:

gem 'mysql2'

这对我有用。

顺便提一句,你有gem

gem 'simple_xlsx_writer'

答案 1 :(得分:1)

忘了它。而不是使用来自http://www.railsinstaller.org/的rails安装程序,它会自动安装带有ruby和带最新版本的rails的mysql2

答案 2 :(得分:0)

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

Unable to install MySQL2 gem on Windows 7

最好的办法是,使用rubyinstaller在Windows上安装rails。

答案 3 :(得分:0)

gem "mysql2", "~> 0.3.11"

然后bundle install

答案 4 :(得分:0)

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

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