如何让 XAMPP 的 MySQL 和 Ruby on Rails 在我的 Mac 上协同工作?

Posted

技术标签:

【中文标题】如何让 XAMPP 的 MySQL 和 Ruby on Rails 在我的 Mac 上协同工作?【英文标题】:How do I get XAMPP's MySQL and Ruby on Rails work together on my Mac? 【发布时间】:2011-03-30 01:30:43 【问题描述】:

我在我的 Mac 机器 (10.6.4) 上通过 XAMPP 运行 mysql 和 apache。我通常使用此设置进行 php 开发,但现在我想从 Ruby on Rails 开始。

不幸的是,我无法让 mysql 与 RoR 一起工作。我用 XAMPP 启动 mysql 服务器,当我执行“rake db:migrate”时,我得到这个输出:

!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
no such file to load -- mysql

mysql位于/Applications/XAMPP/xamppfiles/bin,mysql SOCKET位于/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

因此我的 database.yml 文件如下所示:

development:
  adapter: mysql
  database: dbname
  username: dbuser
  password: dbpw
  socket: /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

我认为我不需要执行“gem install mysql”,因为 mysql 已经与 XAMPP 一起运行。无论如何我尝试过,但也失败了:

ERROR:  Error installing mysql:
  ERROR: Failed to build gem native extension.

【问题讨论】:

【参考方案1】:

我认为你在正确的轨道上。您确实需要 mysql gem,因为它提供了与 mysql 通信所需的文件。它不安装 mysql 数据库引擎。

至于 mysql gem 安装失败的原因,我唯一能想到的就是权限问题,但我认为当你运行“gem install mysql”时会在输出中指出这一点。您可以尝试在 install 命令中添加 --backtrace 以查看它是否提供了有关失败原因的更多信息。

【讨论】:

【参考方案2】:

mysql gem 不是 mysql 服务器,它是 mysql api 的 ruby​​ 绑定。

对于安装问题,请查看此SO question,我认为正确答案非常适合正在发生的事情:MySQL Install: ERROR: Failed to build gem native extension

【讨论】:

【参考方案3】:

您需要告诉 gem 安装程序使用 XAMPP 安装的 mysql 文件的路径

sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-dir=/Applications/XAMPP/xamppfiles/lib/mysql --with-mysql-lib=/Applications/XAMPP/xamppfiles/lib/mysql/ --with-mysql-include=/Applications/XAMPP/xamppfiles/include/mysql/

还将正确的套接字添加到您的 database.yml:

development:
  adapter: mysql2
  encoding: utf8
  database: your_db
  pool: 5
  username: root
  password:
  socket: /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

之后,再次在 rails 项目中运行bundle,它应该可以工作了。

【讨论】:

【参考方案4】:

使用这个为我工作:

sudo gem install mysql2 -- --with-mysql-config="/Applications/XAMPP/xamppfiles/bin/" --with-mysql-include="/Applications/XAMPP/xamppfiles/include/" --with-mysql-lib="/Applications/XAMPP/xamppfiles/lib/mysql/"

【讨论】:

以上是关于如何让 XAMPP 的 MySQL 和 Ruby on Rails 在我的 Mac 上协同工作?的主要内容,如果未能解决你的问题,请参考以下文章

将 Ruby on Rails 连接到现有的 MySQL 数据库(以前安装的 XAMPP)

如何让 mysql 服务器在 xampp 中工作?

崩溃后如何让 XAMPP 中的 MySQL 服务器正常工作?

如何让 XAMPP 控制面板正确安装和启动服务?

Windows下安装的XAMPP如何设置Apache和MySQL等服务开机自启动

如何使用预安装的 MySQL 配置 XAMPP?