68

WWDC で入手したディスクを使用して Snow Leopard にアップグレードしました。

一部の Rails アプリを実行しようとすると、SQL について不平を言うようになりました

    (in /Users/coneybeare/Projects/Ambiance/ambiance-server)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
Importing all sounds in /Users/coneybeare/Projects/Ambiance/ambiance-sounds/Import 32/Compressed/

 -- AdirondackPeepers.caf
!!! 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!
dlopen(/opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib
  Referenced from: /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
  Reason: image not found - /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle

(See full trace by running task with --trace)

私はこれを以前に一度修正したと誓ったかもしれません。問題はそれです

sudo gem install mysql

動作せず、エラーが発生します:

 Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
    ERROR: Failed to build gem native extension.

/opt/local/bin/ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no


Gem files will remain installed in /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out

Snow Leopard の Rails で mysql を動作させた人はいますか? もしそうなら、あなたの設定は何ですか?それを再現するにはどうすればよいですか?

4

18 に答える 18

107

私はちょうど同じ痛みを経験しました...これが私のために働いたものです:

  1. mysql.comから64ビットMySQL5.1.37をダウンロード/インストールします
  2. 次のコマンドを実行します。
    sudo gem update --system

    sudo env ARCHFLAGS = "-arch x86_64" gem install mysql --- with-mysql-config = / usr / local / mysql / bin / mysql_config

また、10。5日から浮かんでいたすべてのmysql gemをアンインストールしました。これは、上記が機能しない場合に実行される可能性があります:)

于 2009-08-28T21:51:56.233 に答える
10

mysql を 64 ビットとして再構築するか、64 ビット バージョンをインストールすることは重要ですが、mysql gem のネイティブ部分も 64 ビットとして構築する必要があります (元の Intel Core Duo Mac のいずれかを使用している場合、これは当てはまりません)。 )。

魔法のコマンドは次のとおりです。

env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

Snow Leopard でネイティブ コンポーネントを使用して gem インストールを行う場合は常に、上記のように ARCHFLAGS を設定する必要があります。

于 2009-08-28T05:25:39.210 に答える
7

バンドラーを使用している場合は、「bundle config」を使用して、次のように mysql の適切なビルド引数を設定できます。

bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
于 2010-08-23T18:30:27.933 に答える
6

私は長い間これと戦ってきましたが、ついに Snow Leopard で動作するようになりました。ソースから Ruby、RubyGems、および MySQL をインストールすることになりました (Ruby と RubyGems のインストールについては、Hivelogic チュートリアルを参照してください。MySQL チュートリアルは下部にリンクされています)。やっと宝石をインストールしましたが、まだ取得していました

dyld: lazy symbol binding failed: Symbol not found: _mysql_init
  Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
  Expected in: flat namespace

dyld: Symbol not found: _mysql_init
  Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
  Expected in: flat namespace

Trace/BPT trap

私は最終的に削除しましたmysql.bundle(これが何のためにあるのかわかりません)そしてそれはすべてうまくいきました。

sudo rm -f /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle

それが誰かを助けることを願っています。

于 2009-08-06T21:10:26.603 に答える
4

私はこの問題を何度も見てきました。ほとんどの場合、マシン上で mysql をビルドします。gem install コマンドの一部として mysqlconfig を渡す必要があると思います。

sudo gem install mysql -- --with-mysql-config=/your/mysql/config

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby
--with-mysql-config

この gem をビルドするには、mysql dev ファイルが必要であることを忘れないでください。

于 2009-06-13T23:59:11.373 に答える
2

Snow Leopard をインストールした後、構成を機能させるのに問題がありました。http://www.mamp.infoで MAMP を見つけました。MAMP にはApache、PHP、および MySQL がバンドルされています。アプリケーションのようにインストールするだけで機能します。試してみる価値はありますが、無料です。

メッシュ

于 2009-09-14T10:50:36.030 に答える
1

ここで自分の質問に答えようと思いました。問題はmysqlではなく、mysqlrubyバインディングにあるように見えます。Querius(私のmysql gui)を接続すると、接続できたので、これを理解しました。

ソースからビルドしてバインディングを修正する方法は次のとおりです。

cd /tmp
wget http://www.tmtm.org/en/ruby/mysql/ruby-mysql-0.2.6.tar.gz
tar xvfz ruby-mysql-0.2.6.tar.gz
cd ruby-mysql-0.2.6
./configure
make
sudo make install

Snow Leopardのソースから構築する必要のあるライブラリはたくさんあり、それらはポップアップし続けます。MacPortsはすべてのライブラリに対して十分に更新されていないようですので、私は自分でそれを行うつもりです。次は:freetype(http://download.savannah.gnu.org/releases-noredirect/freetype/

于 2009-06-14T04:19:37.287 に答える
1

この投稿 ( http://www.schmidp.com/2009/06/14/rubyrails-and-mysql-on-snow-leopard-10a380/ ) で説明されているように進めたところ、すべて正常に動作するようになりました。

mysql ドライバーをインストールするコマンドのタイプミスに注意してください。

于 2009-07-15T12:39:13.470 に答える
1

Rails から数年間離れていた私は、開発環境のセットアップに時間を費やしました。そこで、Rails 3、MySQL、および RVM の最新バージョンを SnowLeopard にインストールする方法に関するチュートリアルを作成して、私の立場にいる他の人の時間を節約できることを願っています。

2011 年 8 月 21 日現在、Rails 3.0.10、MySQL 5.5.15、および RVM 1.7.2 を使用して動作します。これは、将来の Rails 3.0.x、MySQL 5.5.x、および RVM 1.7.x バージョンで動作するはずです。

  1. まだインストールされていない場合は、XCode をインストールします。4.0.2を使用しました。残念ながら、これは現在 Apple によって取り下げられていますが、インターネット上の他の場所で入手できる可能性があります。バージョン 3.2.x は Apple から無料でダウンロードできますが、このチュートリアルではテストしていませんが、おそらく動作します。

  2. rvmをインストールします。

    user$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
    
    user$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
    
    user$ source .bash_profile
    
  3. Ruby のバージョン (1.9.2 など) を rvm にインストールします。基本的な使用方法については、こちらを参照してください

    user$ rvm install 1.9.2
    user$ rvm use 1.9.2
    
  4. 手順 2 でインストールした rvm ruby​​ の gemset を作成します(x はバージョン番号です)。

    user$ rvm gemset create rails30x
    user$ rvm 1.9.2@rails30x
    
  5. Rails 3.0.x をインストールします (x はバージョン番号です)。

    user$  gem install rails -v 3.0.x.
    
  6. MySQL 5.5.x パッケージ、スタートアップ項目、および設定ペインをダウンロードしてインストールします。これら 3 つすべてが DMG インストール ファイルに含まれています。MySQL WorkBench もインストールします。

    /usr/local/mysql-version-name/support-files (正しい MySQL ディレクトリ名を挿入) を見つけて、mysql.server を編集します (root 権限で)。46 行目あたりで、次の行を見つけます。

    basedir=
    datadir=
    

    それらを読み取りに変更します(正しいMySQLディレクトリ名を挿入します):

    basedir=/usr/local/mysql-version-name
    datadir=/usr/local/mysql-version-name/data
    

    ファイルを保存します。設定ペインから MySQL を起動できるようになりました。

    Rails 3 で mysql を使用できるようにするには、mysql2 gem をインストールします (次のステップを参照)。DYLD_LIBRARY_PATH最初に、MySQL ライブラリ ディレクトリを含めるようにを設定する必要があります 。これを行うには、ホーム フォルダーで ~/.bash_profile を編集し、以下を含めます (正しい MySQL ディレクトリ名を挿入します)。

    export DYLD_LIBRARY_PATH=/usr/local/mysql-version-name/lib:$DYLD_LIBRARY_PATH
    

    DYLD_LIBRARY_PATH にディレクトリが含まれていないと、ライブラリが見つからないというメッセージが表示され、サーバーが異常終了します。

  7. mysql2ジェムをインストールします。(2011 年 5 月現在、バージョン 0.2.7 が Rails 3.0.x で動作する最新バージョンです)。

    user$ gem install mysql2 -v 0.2.7 
    
  8. Rails アプリを作成し、それに対応するデータベース (appname_development) を作成します。

    user$ rails new appname
    
  9. これをアプリの Gemfile に追加します。gem 'mysql2', "0.2.7"

  10. これをアプリの database.yml に追加します。

    development: 
      adapter: mysql2
      encoding: utf8
      reconnect: false
      database: appname_development
      pool: 5
      username: username
      password: pwd
      host: localhost
    
  11. アプリを起動し、「アプリの環境について」にチェックを入れます。すべてが正しく機能するはずです。

于 2011-08-21T15:09:09.863 に答える
1

MySQL を手動でインストールする代わりに、自作を好む場合。

既存の mysql gem (ある場合) をアンインストールします。

 sudo gem uninstall mysql 

「mysql_config」ファイルを見つけます。

 find /usr -name 'mysql_config' 

mysql gem を再インストールします。

 sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/bin/mysql_config 

注:/usr/local/bin/ステップ 2 で見つけた対応するmysql_configパスに置き換えます

于 2011-01-17T03:47:25.997 に答える
1

私はこれと同じ問題を抱えていましたが、これが私にとってうまくいったものです。

  1. Snow Leopard と 64 ビット MySQL DMG をインストールします。

  2. 以前の MySQL データ ディレクトリを指す /etc/my.cnf を作成し (ここで説明)、実行します

    sudo mysql_upgrade

  3. IRB を開き、(blog.costan.us/2009/07/rebuild-your-ruby-gems-if-you-update-to.html 経由で) を使用してすべての gem を再インストールしました。

    `gem list`.each_line {|行| system 'sudo gem install #{line.split.first}'}

  4. インストールした MySQL gems をアンインストールしました。

  5. インストールされたMySQL gem

    sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

これで、これまでのところすべてが機能しているようです。*ノックウッド*

于 2009-08-28T22:38:54.533 に答える
1

ARCHFLAGS を設定して --mysql-config=... を渡す手順は、Snow Leopard でこれを解決するのに十分ではないようです。それに加えて、次のように追加しました。

DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"

私のbashプロファイルに、これで解決しました。

于 2010-12-27T18:45:18.240 に答える
1

Ian Selby ありがとうございますsudosudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

私は gemset にインストールしていて、sudo キーワードを使用しないように求めていると思われる rvm を使用しています。どうもありがとう。

于 2011-02-04T00:41:43.143 に答える
1

私はこのように解決しました:

  1. mysqlのdmgファイルをインストール後  
  2. bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin//mysql_config
  3. env ARCHFLAGS="-arch x86_64"
  4. バンドル インストール
于 2011-04-04T13:19:40.440 に答える
0

archflags のトリックを少し変えて何度も試しましたが、うまくいきませんでした。

最終的にうまくいったのは、Snow Leopard とともにインストールされた ruby​​ と gem のバージョンに戻すことでした。

これ以外のあらゆる点で機能する独自のバージョンを構築してインストールしました。他のすべてが正常に動作しているように見えるので、mysql プラグインにはいくつかの奇妙な仮定が含まれていると推測せずにはいられません。とにかく、/usr/bin を再びパスの先頭に切り替えるだけで済みました。簡単に切り替えられるように、/usr/local/ruby-1.8.7 と /usr/local/ruby-1.9.1 に ruby​​ をインストールしました。archflags ソリューションは多くの人に有効であるように思われるため、言及したいと思いますが、すべてではありません。

于 2009-11-02T08:00:15.627 に答える
0

RVM で mysql gem をインストールする場合は、次のコードを使用してインストールする必要があります。

sudo env ARCHFLAGS="-arch x86_64" gem install mysql

この方法はLeopard Serverでうまくいきましたが、上記のどれもうまくいきませんでした

于 2010-05-19T23:43:00.813 に答える
0

この記事は私の問題を解決しました:)

http://techliberty.blogspot.com/2009/12/dealing-with-rake-aborted-uninitialized.html

  • ヒョウ以前

    sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql

    • PPC マシンでの Leopard:

      sudo env ARCHFLAGS="-arch ppc" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

    • Intel マシン上の Leopard:

      sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

    • Snow Leopard (Intel のみ):

      sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

于 2010-03-05T09:41:22.003 に答える
0

mysql_config プログラムの名前を $MYSQL_HOME/bin から別の名前に変更して、gem インストーラーの構成スクリプトがそれを見つけられないようにしました。私は libs オプションを使用していましたが、gem インストーラーは常に mysql インストールのコンパイル設定を使用していました。これはファット バイナリです。ただし、デフォルトの ruby​​ インストールは x86_64 のみであるため、gem のコンパイルは失敗します。mysql_config プログラムの名前を変更した後、次のコマンドは問題なく機能し、gem をインストールしました。

sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-dir=/usr/local/mysql
于 2010-03-04T13:01:19.150 に答える