sql >> Database teknologi >  >> RDS >> Mysql

'undefined method init for Mysql:Class'

Jeg har Rails 3.1-rc4, MySQL 5.5.15 (lige opgraderet) og Mac OS X Lion. Mit problem viste sig at være, at mysql_api.bundle-filen var linket til den rigtige libmysqlclient.18.dylib-fil, men den kunne ikke finde biblioteket:

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)

Biblioteket findes ikke under kørsel. Mit første forsøg på at rette dette var at tilføje en LC_RPATH-kommando, men det var ikke nok (måske fordi det var i slutningen af ​​listen). I stedet ændrede jeg direkte bibliotekslinket med:

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

Nu viser otool mig:

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)

og det hele er glad igen. Dette virker dog kun på Mac OS X.



  1. Kunne ikke oprette forbindelse til SQL Server fra Linux

  2. Udfør lagret procedure fra en funktion

  3. Kan jeg lave en atomisk stigning i Rails 2.3 uden at gå ned til SQL?

  4. Databaseovervågning - Fejlfinding af Prometheus med SCUMM Dashboards