首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails mysql2错误:"rake中止!请安装mysql2适配器.“

Rails mysql2错误:"rake中止!请安装mysql2适配器.“
EN

Stack Overflow用户
提问于 2012-03-19 18:20:25
回答 3查看 8.3K关注 0票数 4

我正在Windows 7 (64位)机器上运行这个程序。我使用一键安装程序安装了RoR。我更新了我的database.yml文件以使用mysql2:

代码语言:javascript
运行
复制
development:
  adapter: mysql2
  encoding: utf8
  database: blog_development
  pool: 5
  username: root
  password: 
  socket: /tmp/mysql.sock
test:
  adapter: mysql2
  encoding: utf8
  database: blog_test
  pool: 5
  username: root
  password: 
  socket: /tmp/mysql.sock

production:
  adapter: mysql2
  encoding: utf8
  database: blog_production
  pool: 5
  username: root
  password: 
  socket: /tmp/mysql.sock

我将这一行添加到我的Gemfile中(根据教程视频):

代码语言:javascript
运行
复制
gem 'mysql2', :group => :production

然后:

代码语言:javascript
运行
复制
gem install mysql2

成功了。然后:

代码语言:javascript
运行
复制
bundle install

这也成功了,但是mysql2没有被列出。

然后:

代码语言:javascript
运行
复制
rake db:create

这就产生了这个错误:

"rake!请安装mysql2适配器:gem install activerecord-mysql2-adapter (我的sql2不是包的一部分。)任务: TOP => db:create (通过运行-sql2来查看完整的跟踪)“

代码语言:javascript
运行
复制
bundle show mysql2

给出这个错误:“无法在当前包中找到gem 'mysql2‘。”

我错过了什么让mysql2走了吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-19 18:27:46

bundle install之前运行rake db:create (在gem install mysql2之后)

票数 2
EN

Stack Overflow用户

发布于 2013-01-20 08:07:44

转到你的应用程序

  1. Open Gemfile
  2. 添加以下一行

创业板'mysql2'

票数 2
EN

Stack Overflow用户

发布于 2014-09-22 07:59:31

在此之后,我也解决了类似的问题。

为每个installation)

  • putting创建libmysql.lib文件并使用它安装/编译本地gem (lib驻留在用于“- with lib=”$mysql top_path/lib“的目录中),即从mysql和mysql2 gems到ruby_top bin libmysql.lib libmysql.dll (在安装mysql2 gem时得到了完全相同的错误,尽管database.yml到处都有"adapter = mysql2”)。

在命令"bundle install“之后,mysql2出现在gems列表中之后,我成功地运行了"rake :create”,在x64 ruby2.0上启动了红x64窗口,在webrick上启动了x64 mysql,并在一些生产服务器上继续进行配置。

===============

更新

我必须精确地说明,除了安装mysql和mysql2之外,我还在redmine顶部目录中创建了Gemfile.local文件,这可能是使用bundler的一个窍门。因此,我建议将最后一步改为:

  • 安装mysql2 gem
  • ,在应用程序顶部目录中创建Gemfile.local文件,其中列出要包含到包中的本地宝石.

我看到了另一个建议将mysql2 gem添加到Gemfile中的答案,但对我来说,mysql2已经包含在Gemfile中,但是在只添加到Gemfile.local之后,mysql2就出现在了bundler输出中。

如果我错了,我会留下这两种解决方案,而诀窍是mysql和mysql2一起安装的,不幸的是,我现在不能从零开始删除/重新安装所有这些来测试,当我能够这样做的时候,我会更新,希望所有这些都能为某人节省一些时间。

我的Gemfile.local文件内容是:

gem "mysql2","~> 0.3.11“

创业板“事件机”

宝石“薄”

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9775654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档