【问题标题】:How do I get XAMPP's MySQL and Ruby on Rails work together on my Mac?如何让 XAMPP 的 MySQL 和 Ruby on Rails 在我的 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.

【问题讨论】:

    标签: mysql ruby-on-rails macos rubygems xampp


    【解决方案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/"
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-02-01
            • 2011-04-21
            • 1970-01-01
            • 2019-03-14
            • 2020-06-13
            • 2017-04-03
            相关资源
            最近更新 更多