如何让 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)
崩溃后如何让 XAMPP 中的 MySQL 服务器正常工作?