sql >> Database >  >> RDS >> Mysql

'undefined methode init voor Mysql:Class'

Ik heb Rails 3.1-rc4, MySQL 5.5.15 (net geüpgraded) en Mac OS X Lion. Mijn probleem bleek te zijn dat het mysql_api.bundle-bestand was gekoppeld aan het juiste libmysqlclient.18.dylib-bestand, maar het kon de bibliotheek niet vinden:

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)

Tijdens runtime wordt de bibliotheek niet gevonden. Mijn eerste poging om dit op te lossen was door een LC_RPATH-opdracht toe te voegen, maar dat was niet genoeg (misschien omdat het aan het einde van de lijst stond). In plaats daarvan heb ik de bibliotheeklink rechtstreeks gewijzigd met:

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 laat otool me zien:

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)

en het is allemaal weer vrolijk. Dit werkt echter alleen op Mac OS X.



  1. Een niet-gedefinieerde index krijgen tijdens het ophalen van de kolomwaarde van mysql

  2. Betekent een 'uniek' kolomveld een index met MySQL, en zo ja, waarom?

  3. Heeft iemand aanzienlijk bewijs dat CHAR sneller is dan VARCHAR?

  4. Meerdere Rails-app, enkele MySQL-database