我的Mac机上运行了XAMPP的mysql和apache(10.6.4)。我通常使用此设置进行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
I不要以为我需要做一个“gem install mysql”,因为mysql已经在运行XAMPP了。无论如何我试过但也失败了:
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
答案 0 :(得分:8)
您需要告诉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
,它应该可以正常工作。
答案 1 :(得分:0)
我认为你走在正确的轨道上。你确实需要mysql gem,因为它提供了与mysql交谈的必要文件。它不会安装mysql数据库引擎。
至于为什么mysql gem无法安装,我唯一能想到的是权限问题,但我认为当你运行“gem install mysql”时会在输出中指出。您可以尝试将--backtrace添加到install命令,以查看是否提供了有关失败原因的更多信息。
答案 2 :(得分:0)
mysql gem不是mysql服务器,它是与mysql api的ruby绑定。
对于安装问题,请查看此SO question,我认为正确的答案非常适合正在进行的操作:MySQL Install: ERROR: Failed to build gem native extension
答案 3 :(得分:0)
使用这个为我工作:
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/"