mysql.rb driver has been removed from Rails 2.2 ?

Out of nowhere I'm starting to get this error message when trying to access the DB (currently at rails edge):

jose@macbook [~/Development/clients/sequoyah] $ rake db:create (in /Users/jose/Development/clients/sequoyah) !!! 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! Failed to lookup Init function /usr/local/lib/ruby/site_ruby/1.8/i686-darwin9.3.0/mysql.bundle

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

I've already re-installed the mysql gem a million times (uninstall and reinstall) and I still get this, any ideas?

I have the same problem when running script/server: JuicyBook:trunk justin$ script/server => Booting Mongrel (use 'script/server webrick' to force WEBrick) => Rails 2.1.0 application starting on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server ** Starting Mongrel listening at 0.0.0.0:3000 ** Starting Rails with development environment... Failed to lookup Init function /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' ...

The only way I can get around this is to add the old mysql.rb file to your RAILS_ROOT/lib folder (the one that was removed from edge rails).

This really bugs me though because I have to do this for every checkout, every branch and I need to remember to not commit it.

If anyone has a real solution it would be very helpful!

Jose Fernandez wrote:

And you also need to edit the mysql_adapter.rb file line 63 change the line into:           require RAILS_ROOT + "/lib/mysql.rb"

Justin Halsall wrote:

you can go to Ruby/MySQL to download the tar file, and run the command below

# ruby ./install.rb

to install the mysql.rb

Weng Edgar wrote:

you can go to Ruby/MySQL to download the tar file, and run the command below

# ruby ./install.rb

to install the mysql.rb

Just learning so hang with me. I downloaded, unzipped and in terminal ran # ruby ./install.rb which returned a new command line. Is there a specific location the folder should sit in before the install command is entered or a directory I should be in first?

Thanks in advance

You get around this by actually installing the MySQL gem with C bindings. The one you guys are talking about is the pure Ruby one.

The pure-MySQL library is terrible for performance and can cause some seriously flaky stuff. There are a number of posts on tis list that discuss the installation of that library.

If you're getting the error relating to

/usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle

then you have a half-installed mysql driver and I bet you're on a Mac.

The solution that worked for me was to do this:

http://www.napcsweb.com/blog/2007/06/01/mysql-gem-on-osx/

I hope that helps!

Thanks for the help - after a bit of onsite help I was able to complete the install. Still some quirks to be worked out but that's the point...to tinker.

Thanks again

Brian Hogan wrote:

I have installed rails 2.2.2 (had 2.0.1) and the mysql performance is very bad compared to earlier I takes me 10 minutes to load data into a mysql database. With 2.0.1 it took less than 4 minutes The amount of save and creating operations is indicated of that the log file is about 2.7 MB I have tried to install mysql gem as proposed.

I first uninstalled mysql by sudo gem uninstall mysql I then installed it again with sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql- dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib --with- mysql-include=/usr/local/mysql/include

but there is now change in performance I have Mysql 5.051, gem 1.3.1 ruby 1.8.6 rails 2.2.2

Appriciate any helps!!!!!

This way has worked everytime for me. Make sure the path is correct in your environment.

sudo gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config