Issue #5017 has been updated by Eric Hodel.

Status changed from Open to Rejected
Priority changed from High to Normal

This is not ruby's bug, it is the ruby mysql extension's bug. Please file it on the bug tracker for the ruby mysql extension.
----------------------------------------
Bug #5017: Mysql::Error: #08S01Bad handshake
http://redmine.ruby-lang.org/issues/5017

Author: Andrew Ivanov
Status: Rejected
Priority: Normal
Assignee: 
Category: 
Target version: Ruby 1.8.7
ruby -v: ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]


Summary: 
if ruby-1.8.7 is compiled from src (not binary from rpm), it can't connect to mysql-5.1.58:
   Mysql::Error: #08S01Bad handshake

Environment: 
ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
mysql-5.1.58
Linux fedora12 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686 i686 i386 GNU/Linux

How to reproduce the issue:
wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p352.tar.gz
tar -xzvf ruby-1.8.7-p352.tar.gz
cd ruby-1.8.7-p352
./configure && make && make install
ln -s /usr/local/bin/ruby /usr/bin/ruby

wget http://rubyforge.org/frs/download.php/74374/rubygems-1.6.0.tgz
tar xzvf rubygems-1.3.7.tgz
cd rubygems-1.3.7
ruby setup.rb

gem install rails -v=1.2.5 

cd /var/www/
rails testproject
cd testproject
script/console

      ActiveRecord::Base.establish_connection(
        :adapter  => "mysql",
        :host     => "localhost",
        :username => "root",
        :password => "pwd",
        :database => "test",
        :port => 3306
      )

ActiveRecord::Base.connection.select_all("SELECT NOW();")

Mysql::Error: #08S01Bad handshake
	from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/vendor/mysql.rb:523:in `read'
	from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/vendor/mysql.rb:153:in `real_connect'
	from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/mysql_adapter.rb:389:in `connect'
	from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/mysql_adapter.rb:152:in `initialize'
	from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/mysql_adapter.rb:82:in `new'
	from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/mysql_adapter.rb:82:in `mysql_connection'
	from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/abstract/connection_specification.rb:262:in `send'
	from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/abstract/connection_specification.rb:262:in `connection_without_query_cache='
	from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/query_cache.rb:54:in `connection='
	from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/abstract/connection_specification.rb:230:in `retrieve_connection'
	from /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/active_record/connection_adapters/abstract/connection_specification.rb:78:in `connection'
	from (irb):1

#############
But if ruby is installed from binaries under Fedora Core 14 (rpm is available for Fedora14, the same ruby version, gems, the same remote mysql server) - everything is ok, no mysql error.

So, the question is: is it possible to compile ruby-1.8.7 from src (for old Linux release) without mysql error?


-- 
http://redmine.ruby-lang.org