在安装Redmine后出现了“尝试加载gem 'mysql2'时出错 (Bundler::GemRequireError)”错误。

4
我正在将redmine从我们办公室的本地服务器转移到在线服务器,这样处理缺陷管理的人就不需要拥有VPN账户来访问redmine。
因此,我们选择使用Bluehost.com,因为我们看到他们的默认Ruby版本是1.9.3(与redmine兼容),而我们检查过的其他主机则为1.8.7。
好了,我已经完成了背景故事的介绍,现在进入正题:
我已经尝试了几天安装redmine,但没有成功。我收到的错误信息是:
错误信息: 无法加载gem 'mysql2'时发生错误。(Bundler::GemRequireError) 异常类:PhusionPassenger::UnknownError 以下是一些详细信息: Ruby版本1.9.3 Redmine版本3.2.2 Rails版本4.2.5.2(作为redmine捆绑包的一部分安装) MySQL版本5.5.42

我在网上使用了一些指南来安装服务器上的redmine,其中之一是bluehost的指南:

https://my.bluehost.com/cgi/help/redmine

在彻底搜索StackOverflow后,我尝试了以下几种方法:

  • 我读到有时候mysql2 gem会出现问题,需要在bundle之后重新安装,所以我执行了gem install mysql2
  • 当有人在这里说mysql2 gem与bluehost在0.3.16版本或其他类似版本上工作时,我也尝试安装特定版本。但没有成功。
  • 我甚至尝试安装本地更新版本的Ruby 2.3.1,但也无法成功,直到我意识到gems并不一定受系统中安装的ruby版本影响。
  • 我甚至不能使用测试功能(如WEBrick或Thin),因为Bluehost想让您拥有专用服务器才能为您打开特殊端口。我们正在使用共享主机。
无论如何,经过大约4天的处理,我得出结论需要寻求帮助。当然,在处理这个问题时,我确实学习了Ruby on Rails的语法(我对Ruby本身毫无头绪和知识),但我需要完成这个任务。
有人有什么见解可以尝试让这个工作起来吗? 以下是错误截图: Passenger Error production.log数据:
Migrating to InsertAllowedStatusesForNewIssues (20150725112753)
Migrating to CreateImports (20150730122707)
Migrating to CreateImportItems (20150730122735)
Migrating to ChangeTimeEntriesCommentsLimitTo1024 (20150921204850)
Migrating to ChangeWikiContentsCommentsLimitTo1024 (20150921210243)
Migrating to ChangeAttachmentsFilesizeLimitTo8 (20151020182334)
Migrating to FixCommaInUserFormatSettingValue (20151020182731)
Migrating to ChangeIssueCategoriesNameLimitTo60 (20151021184614)
Migrating to ChangeAuthSourcesFilterToText (20151021185456)
Migrating to ChangeUserPreferencesHideMailDefaultToTrue (20151021190616)
Migrating to AddTokensUpdatedOn (20151024082034)
Migrating to CreateCustomFieldEnumerations (20151025072118)
Migrating to AddProjectsDefaultVersionId (20151031095005)

相比之下,development.log非常庞大,因此我只会添加其中的一部分来演示写入的内容类型。如果需要,我可以访问cpanel并下载整个文件:

'  ^[[1m^[[36m (0.2ms)^[[0m  ^[[1mSHOW CREATE TABLE `wikis`^[[0m
  ^[[1m^[[35m (0.3ms)^[[0m  SELECT fk.referenced_table_name as 'to_table'
      ,fk.referenced_column_name as 'primary_key'
      ,fk.column_name as 'column'
      ,fk.constraint_name as 'name'
FROM information_schema.key_column_usage fk
WHERE fk.referenced_column_name is not null
  AND fk.table_schema = 'skredmin_redmine2'
  AND fk.table_name = 'workflows'

感谢任何见解!


我假设 gem install mysql2 没有出现错误?同时,我假设 bundle install 也没有出现错误?你的 Gemfile 中是哪一行(确切的版本)? - xyious
这行代码是 'gem "mysql2", "~> 0.3.11" ',它会安装 mysql2 0.3.21 版本。 无论是 gem 安装还是 bundle 安装都没有出现任何错误或异常情况,这就是整个情况如此奇怪的原因。 我还收到了 Bluehost 的回复,他们的 mysql 服务正常运行。 - Oren_C
你的错误日志(log/development.log)里面有没有更多的信息? - xyious
将production.log添加到帖子中,并添加了一部分巨大的development.log(不知道为什么这么大,我正在尝试在生产环境中使网站正常工作)。 - Oren_C
不好意思,它并没有解决。我甚至尝试了降级版本,但问题仍然存在。 - Oren_C
显示剩余2条评论
2个回答

6
尝试运行命令'bundle update mysql2'。我对redmine的服务器端还不熟悉,但当我们在服务器上更新mysql时,我遇到了这个问题。这个命令对我有用,希望能帮到你。

我也在Bluehost上遇到了和OP一样的问题。谢谢,但这并没有帮助到我。 - John Smith

2
我不得不在gemfile中降低mysql2 gem的版本:
gem 'mysql2', '~> 0.3.18'

然后使用 bundle update 命令降级版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接