Trouble installing Ruby DBI for MySQL

Hello all, first time poster.

I installed ruby 1.8.2 without a hitch and am trying to install drivers for
accessing MySQL

I tried to install mysql-ruby-2.6 with the following:

ruby extconf.rb --with-mysql-include=/usr/include/mysql
--with-mysql-lib=/var/lib/mysql
make
make install

(no errors)

and ruby-dbi-all-0.0.21 with:

ruby setup.rb config --with=dbi,dbd_mysql
ruby setup.rb setup
ruby setup.rb install

(no errors here either)

But when i attempt to run a simple script:

···

==================================================
require "dbi"

DBI.connect("dbi:Mysql:database:host", "user", "pass") do |dbh|

# prepare can take a code block, passes the statement handle
# to it, and automatically calls finish at the end of the block

dbh.prepare("SHOW DATABASES") do |sth|
sth.execute
puts "Databases: " + sth.fetch_all.join(", ")
end

# execute can take a code block, passes the statement handle
# to it, and automatically calls finish at the end of the block

dbh.execute("SHOW DATABASES") do |sth|
puts "Databases: " + sth.fetch_all.join(", ")
end
end

I get a bad segfault error:

/usr/local/lib/ruby/site_ruby/1.8/DBD/Mysql/Mysql.rb:465: [BUG] Segmentation
fault
ruby 1.8.2 (2004-12-25) [i686-linux]

Aborted

Can anyone shed any light on the situation? I am quite stuck on where to fix
this.

Thanks in advance
--
jeffa

Did this message even get through? Shall i just go back to programming Perl?

···

On 11/16/05, Jeff Anderson <captvanhalen@gmail.com> wrote:

Hello all, first time poster.

I installed ruby 1.8.2 without a hitch and am trying to install drivers
for
accessing MySQL

I tried to install mysql-ruby-2.6 with the following:

ruby extconf.rb --with-mysql-include=/usr/include/mysql
--with-mysql-lib=/var/lib/mysql
make
make install

(no errors)

and ruby-dbi-all-0.0.21 with:

ruby setup.rb config --with=dbi,dbd_mysql
ruby setup.rb setup
ruby setup.rb install

(no errors here either)

But when i attempt to run a simple script:

==================================================
require "dbi"

DBI.connect("dbi:Mysql:database:host", "user", "pass") do |dbh|

# prepare can take a code block, passes the statement handle
# to it, and automatically calls finish at the end of the block

dbh.prepare("SHOW DATABASES") do |sth|
sth.execute
puts "Databases: " + sth.fetch_all.join(", ")
end

# execute can take a code block, passes the statement handle
# to it, and automatically calls finish at the end of the block

dbh.execute("SHOW DATABASES") do |sth|
puts "Databases: " + sth.fetch_all.join(", ")
end
end

I get a bad segfault error:

/usr/local/lib/ruby/site_ruby/1.8/DBD/Mysql/Mysql.rb:465: [BUG]
Segmentation
fault
ruby 1.8.2 (2004-12-25) [i686-linux]

Aborted

Can anyone shed any light on the situation? I am quite stuck on where to
fix
this.

Thanks in advance
--
jeffa

--
jeffa

I'm not sure what's going on but you may not need to use extconf.rb

You might try installing mysql via the RubyGems system.

and then reinstalling DBI

What system are you on? This kind of information is usually helpful
for those looking to assist you.

···

On 11/16/05, Jeff Anderson <captvanhalen@gmail.com> wrote:

Can anyone shed any light on the situation? I am quite stuck on where to fix
this.

Depending on your environment, Ruby-MySQL can have frustrating
problems. See
http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/ffe920e1f74b133a/e1bc495f571301db?q=dbi+mysql+i686-linux&rnum=3#e1bc495f571301db
and
http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/9461193f16d1f92b/057878404303dc27?q=dbi+mysql+i686-linux&rnum=6#057878404303dc27
for more discussion.

I've had times when Ruby-MySQL through DBI won't work for me, so what
I've done is:

1. Install MySQL-Ruby (which is a pure Ruby version) from
MySQL/Ruby .
2. Edit your Mysql.rb DBD file. The line that says

  require 'mysql'

should instead say

  require 'mysql.rb'

You're coercing the DBD to use the .rb version, instead of the .so
version.

This is terribly annoying, of course, but for me it's less annoying
than futzing around endlessly with build configuration.

I'm an admin on the Ruby-DBI project, and with any luck will be able to
commit this into the head in the next few weeks.

f.

Jeff Anderson wrote:

···

Hello all, first time poster.

I installed ruby 1.8.2 without a hitch and am trying to install drivers for
accessing MySQL

I tried to install mysql-ruby-2.6 with the following:

ruby extconf.rb --with-mysql-include=/usr/include/mysql
--with-mysql-lib=/var/lib/mysql
make
make install

(no errors)

and ruby-dbi-all-0.0.21 with:

ruby setup.rb config --with=dbi,dbd_mysql
ruby setup.rb setup
ruby setup.rb install

(no errors here either)

But when i attempt to run a simple script:

==================================================
require "dbi"

DBI.connect("dbi:Mysql:database:host", "user", "pass") do |dbh|

# prepare can take a code block, passes the statement handle
# to it, and automatically calls finish at the end of the block

dbh.prepare("SHOW DATABASES") do |sth|
sth.execute
puts "Databases: " + sth.fetch_all.join(", ")
end

# execute can take a code block, passes the statement handle
# to it, and automatically calls finish at the end of the block

dbh.execute("SHOW DATABASES") do |sth|
puts "Databases: " + sth.fetch_all.join(", ")
end
end

I get a bad segfault error:

/usr/local/lib/ruby/site_ruby/1.8/DBD/Mysql/Mysql.rb:465: [BUG] Segmentation
fault
ruby 1.8.2 (2004-12-25) [i686-linux]

Aborted

Can anyone shed any light on the situation? I am quite stuck on where to fix
this.

Thanks in advance
--
jeffa

Thanks Greg and Francis.

My apologies for not listing the system specs:

Linux/Red Hat v9
MySQL 4.1.9-Max

I will try your suggestions/advice ... thanks again. :slight_smile:

···

On 11/17/05, Francis Hwang <sera@fhwang.net> wrote:

Depending on your environment, Ruby-MySQL can have frustrating
problems. See

http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/ffe920e1f74b133a/e1bc495f571301db?q=dbi+mysql+i686-linux&rnum=3#e1bc495f571301db
and

http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/9461193f16d1f92b/057878404303dc27?q=dbi+mysql+i686-linux&rnum=6#057878404303dc27
for more discussion.

I've had times when Ruby-MySQL through DBI won't work for me, so what
I've done is:

1. Install MySQL-Ruby (which is a pure Ruby version) from
MySQL/Ruby .
2. Edit your Mysql.rb DBD file. The line that says

require 'mysql'

should instead say

require 'mysql.rb'

You're coercing the DBD to use the .rb version, instead of the .so
version.

This is terribly annoying, of course, but for me it's less annoying
than futzing around endlessly with build configuration.

I'm an admin on the Ruby-DBI project, and with any luck will be able to
commit this into the head in the next few weeks.

f.

Jeff Anderson wrote:
> Hello all, first time poster.
>
> I installed ruby 1.8.2 without a hitch and am trying to install drivers
for
> accessing MySQL
>
> I tried to install mysql-ruby-2.6 with the following:
>
> ruby extconf.rb --with-mysql-include=/usr/include/mysql
> --with-mysql-lib=/var/lib/mysql
> make
> make install
>
> (no errors)
>
> and ruby-dbi-all-0.0.21 with:
>
> ruby setup.rb config --with=dbi,dbd_mysql
> ruby setup.rb setup
> ruby setup.rb install
>
> (no errors here either)
>
> But when i attempt to run a simple script:
>
> ==================================================
> require "dbi"
>
> DBI.connect("dbi:Mysql:database:host", "user", "pass") do |dbh|
>
> # prepare can take a code block, passes the statement handle
> # to it, and automatically calls finish at the end of the block
>
> dbh.prepare("SHOW DATABASES") do |sth|
> sth.execute
> puts "Databases: " + sth.fetch_all.join(", ")
> end
>
> # execute can take a code block, passes the statement handle
> # to it, and automatically calls finish at the end of the block
>
> dbh.execute("SHOW DATABASES") do |sth|
> puts "Databases: " + sth.fetch_all.join(", ")
> end
> end
> ==================================================
>
> I get a bad segfault error:
>
> /usr/local/lib/ruby/site_ruby/1.8/DBD/Mysql/Mysql.rb:465: [BUG]
Segmentation
> fault
> ruby 1.8.2 (2004-12-25) [i686-linux]
>
> Aborted
>
> Can anyone shed any light on the situation? I am quite stuck on where to
fix
> this.
>
> Thanks in advance
> --
> jeffa

--
jeffa