如何获得XAMPP';s MySQL和RubyonRails在我的Mac上一起工作?

如何获得XAMPP';s MySQL和RubyonRails在我的Mac上一起工作?,mysql,ruby-on-rails,macos,rubygems,xampp,Mysql,Ruby On Rails,Macos,Rubygems,Xampp,我在我的Mac机器(10.6.4)上通过XAMPP运行mysql和apache。我通常使用这种设置进行PHP开发,但现在我想从RubyonRails开始 不幸的是,我无法让mysql与RoR一起工作。我用XAMPP启动mysql服务器,当我执行“rake db:migrate”时,我得到以下输出:mysql位于/Applications/XAMPP/xamppfiles/bin中,mysql套接字位于/Applications/XAMPP/xamppfiles/var/mysql/mysql.s

我在我的Mac机器(10.6.4)上通过XAMPP运行mysql和apache。我通常使用这种设置进行PHP开发,但现在我想从RubyonRails开始

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

mysql位于/Applications/XAMPP/xamppfiles/bin中,mysql套接字位于/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock中,因此我的database.yml文件如下所示:


我认为我不需要执行“gem安装mysql”因为mysql已经在使用XAMPP运行了。不管怎样,我试过了,但也失败了:

我认为你走对了方向。您确实需要mysql gem,因为它提供了与mysql对话所需的文件。它没有安装mysql数据库引擎

!!! 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
development:
  adapter: mysql
  database: dbname
  username: dbuser
  password: dbpw
  socket: /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
ERROR:  Error installing mysql:
  ERROR: Failed to build gem native extension.
至于mysql gem安装失败的原因,我唯一能想到的是权限问题,但我认为当您运行“gem install mysql”时,会在输出中指出这一点。您可以尝试将--backtrace添加到install命令中,以查看它是否提供了有关失败原因的更多信息。

这不是mysql服务器,而是mysql api的ruby绑定


对于安装问题,请查看以下内容,我认为正确的答案非常适合当前情况:

您需要告诉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
,它应该可以工作。

使用以下方法为我工作:

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/"