【问题标题】:How to correctly install MySQL Ruby Gem如何正确安装 MySQL Ruby Gem
【发布时间】:2011-05-02 20:47:13
【问题描述】:

我正在尝试为 MySQL 安装 Ruby GEM。我对 Ruby 很陌生。

我已经安装了 RVM 和 Bundler。我应该通过 Bundler 还是 RVM 安装 gem?

正确执行此操作的实际命令是什么?

【问题讨论】:

  • 你应该接受答案(左边的勾)

标签: mysql ruby-on-rails ruby rvm bundler


【解决方案1】:

既然您已经安装了 RVM,请为您的应用程序创建一个 gemset。这将仅隔离该应用程序的 gem,而不会影响系统的其余部分。

rvm gemset create appname && rvm gemset use appname

完成此操作后,手动或通过捆绑程序安装不带 sudo 的 gem,确保隔离。

【讨论】:

  • 我会投票给你,但这需要我有 15 个声望点,哈哈 :)
  • 谢谢,我执行了你的命令。现在我怎样才能将 MySQL GEM 放入这个 gemset 中? - 谢谢!
  • @GeekedOut,一旦你创建了 gemset,任何通过命令行或捆绑器完成的 gem 安装都会自动将它添加到 gemset。至于怎么做,请按照下面@Amokrane的回答。
【解决方案2】:

一旦您进入应用程序目录,并按照 Srdjan 所述创建 gemset 后,您有两个选择。要么运行:

gem install mysql

或将此行添加到您的 Gemfile:

gem 'mysql'

将该行添加到 Gemfile 后,运行:

bundle install

编辑

您必须通过database.yml 文件为您的每个环境(开发、登台和生产)配置数据库。应该是这样的:

development:
  adapter: mysql
  database: name_of_your_database
  encoding: utf8
  host: localhost
  username: root (replace with the actual username)
  password: root (replace with the actual password)

设置完成后,您可以添加migrations 以将表添加到您的数据库中。如果这是一个遗留数据库,您可能需要从中生成一些模型。为此,您可以使用legacy_database gem。

您不必自己处理与数据库的连接,Rails 会为您完成。要访问您的表并查询它们,您可以使用 ActiveRecord 方法。

例如,假设您有一个名为 users 的表,并且您需要通过 id 查找用户,您可以这样做:

user = User.find(id)

阅读documentation 以开始使用 Active Record 进行查询。

【讨论】:

  • @Amokrane 我使用了您的选项 #1,我让 gem 出现在我的环境中,但是当我尝试这样做时,我的 Ruby 代码中需要 'mysql',我仍然收到一个错误它不识别mysql。知道为什么吗?
  • @GeekedOut 你到底想做什么?安装 gem 后,您不应该自己需要它,它已经在引擎盖下为您完成了!我想您需要将它用作 database.yml 文件中的适配器!适配器:mysql之类的...
  • @Amokrane 我试图在控制器中要求 MySQL gem,以便我可以连接到数据库。我尝试做这样的事情:需要'mysql'——或者我应该通过database.yml文件来做吗?如果是这样,我如何从服务器代码显式连接/查询数据库? - 谢谢!
  • @Amokrane 它有帮助。我现在收到此错误:未初始化的常量 HomeController::User - 知道为什么吗?我还需要在代码中做这样的事情吗:require 'mysql'
  • 您的数据库中有一个名为“users”的表吗?您是否有模型用户(由派生自 ActiveRecord::Base 的类定义)? (哦,不管怎样,忘了 require 'mysql' :))。
【解决方案3】:

要安装并运行 MySQL,您需要做一些事情:

  • 为 MySQL 和 Ruby 安装的开发头文件
  • 工作的mysql_config 或mysql_config5 二进制文件
  • gem 'mysql' 在您的Gemfile 中列出

一旦你把所有这些都准备好了,就应该使用例程非常干净地组合在一起:

bundle install

【讨论】:

  • 谢谢!你是什​​么意思“为 MySQL 和 Ruby 安装了开发头文件?” - 这意味着什么变化?除此之外,我已经安装并运行了 MySQL。
  • 有些系统只附带运行两者所需的二进制文件,但不包括头文件,这是编译扩展和驱动程序所必需的。在某些发行版中,这是在单独的可选 -devel 包中提供的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多