sql >> データベース >  >> RDS >> Mysql

'Mysql:Classの未定義のメソッドinit'

    Rails 3.1-rc4、MySQL 5.5.15(アップグレードしたばかり)、Mac OSXLionを持っています。私の問題は、mysql_api.bundleファイルが正しいlibmysqlclient.18.dylibファイルにリンクされていることが判明しましたが、ライブラリが見つかりませんでした:

    otool -L ~/.rvm/gems/ruby-1.9.2-p180/gems/mysql-2.8.1/lib/mysql_api.bundle 
    /Users/rowland/.rvm/gems/ruby-1.9.2-p180/gems/mysql-2.8.1/lib/mysql_api.bundle:
        /Users/rowland/.rvm/rubies/ruby-1.9.2-p180/lib/libruby.1.9.1.dylib (compatibility version 1.9.1, current version 1.9.1)
        libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)
        /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
    

    実行時にライブラリが見つかりません。これを修正する最初の試みはLC_RPATHコマンドを追加することでしたが、それだけでは不十分でした(おそらくリストの最後にあったためです)。代わりに、次のコマンドでライブラリリンクを直接変更しました:

    install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~/.rvm/gems/ruby-1.9.2-p180\@rails-3.1/gems/mysql-2.8.1/lib/mysql_api.bundle
    

    今otoolは私を示しています:

    otool -L ~/.rvm/gems/ruby-1.9.2-p180\@rails-3.1/gems/mysql-2.8.1/lib/mysql_api.bundle 
    /Users/rowland/.rvm/gems/[email protected]/gems/mysql-2.8.1/lib/mysql_api.bundle:
        /Users/rowland/.rvm/rubies/ruby-1.9.2-p180/lib/libruby.1.9.1.dylib (compatibility version 1.9.1, current version 1.9.1)
        /usr/local/mysql/lib/libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)
        /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
    

    そして、それはすべて再び幸せです。ただし、これはMacOSXでのみ機能します。



    1. PythonでPostgresqlのデータベースのリストを取得するにはどうすればよいですか?

    2. 条件付きロジックを使用したMysqlselect

    3. SQLiteで一時テーブルを作成する

    4. psqlエラー:読み取り用にファイルaddress.csvを開くことができませんでした:そのようなファイルまたはディレクトリはありません