Ruby - mysql - Error Authentication protocol not supported

On Windows XP Prof system, using Ruby 1.8.4 & mysql-ruby-2.7.1 (pure
ruby interface),
myswl 5.0 server, and rubyuser is defined as a mysql user, I am trying
to run the following sample program and getting the error:

*** C:/ruby/lib/ruby/1.8/mysql.rb:453:in read': Client does not support authentication protocol requested by server; consider upgrading MySQL client (Mysql::Error) from C:/ruby/lib/ruby/1.8/mysql.rb:130:inreal_connect’
from C:/ruby/lib/ruby/1.8/mysql.rb:91:in `initialize’
from C:/0-dwn/mysql/ruby-mysql-0.2.6/sampledb0.rb:5

I am able to perform all of the commands via a commandline console.

Please help me with this error message, what do I need to change to get
it working

Thanks,
John

========Sampledb.rb =========================================

require “mysql”

dbname = “sampledb”

m = Mysql.new(“localhost”, “root”, “passwd”)
r = m.query(“CREATE DATABASE #{dbname}”)
m.select_db(dbname)
m.query(“CREATE TABLE words
(
german varchar(30),
english varchar(30),
french varchar(30)
)”
)

m.query(“INSERT INTO words VALUES(‘Adler’, ‘eagle’, ‘aigle’)”)
m.query(“INSERT INTO words VALUES(‘Haus’, ‘house’, ‘maison’)”)
m.query(“INSERT INTO words VALUES(‘Name’, ‘name’, ‘nom’)”)
m.query(“INSERT INTO words VALUES(‘Wal’, ‘whale’, ‘baleine’)”)
m.query(“GRANT ALL ON sampledb.* TO rubyuser@localhost IDENTIFIED by
‘ruby’”)

m.close

[email protected] wrote:

from C:/0-dwn/mysql/ruby-mysql-0.2.6/sampledb0.rb:5
[snip]

I think I heard that the ruby mysql library doesn’t work with mysql 5?
I’m not sure, though.

-Justin

Justin C. wrote:

[email protected] wrote:

from C:/0-dwn/mysql/ruby-mysql-0.2.6/sampledb0.rb:5
[snip]

I think I heard that the ruby mysql library doesn’t work with mysql 5?
I’m not sure, though.

MySQL/Ruby works fine with MySQL 5.0.* (for me, 5.0.19):
MySQL/Ruby

  • This is great if you can do makes.
  • Been using this for years, with various MySQLs.
  • Tomita Masahiro keeps it up to date still, last was just over 1
    month ago.

His Ruby/MySQL doesn’t seem to (and is the rumour source I suspect):
Ruby/MySQL

  • however, maybe you can, if you use the old authentication protocol
    (see 1st paragraph here:
    Ruby/MySQL)
  • Latest version is out-of-date, and is around 1.5 years old.
  • Also, it is decently slower (unsurprising, shush).

The rails-emergent ActiveRecord can use either of these, but as it says,
the pure ruby one won’t work with MySQL 4.1.*+ … but the natively
linked one will.
http://wiki.rubyonrails.org/rails/pages/MySQL

Maybe useful, maybe not.
ARJ