How to solve unspecified constant Mysql (name error)

I am trying to connect and using MySQL server from Ruby.

When I run program like "ruby mysql.rb" then error display like:

/home/jaimin/mysql.rb:6:in `<top (required)>': uninitialized constant
Mysql (NameError)
  from
/home/jaimin/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in
`require'
  from
/home/jaimin/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in
`require'
  from mysql.rb:2:in `<main>'

How can I solve this error?

Best regards.

···

--
Posted via http://www.ruby-forum.com/.

First of all, make sure you are requiring the gem, which is probably

require 'mysql'

Also, not sure if this is your case, but if you name your file exactly
the same as a gem that you require, you can have problems. Try
renaming your ruby file to something different to mysql.rb

Jesus.

···

On Tue, Mar 11, 2014 at 10:05 AM, Jaimin Pandya <lists@ruby-forum.com> wrote:

I am trying to connect and using MySQL server from Ruby.

When I run program like "ruby mysql.rb" then error display like:

/home/jaimin/mysql.rb:6:in `<top (required)>': uninitialized constant
Mysql (NameError)
  from
/home/jaimin/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in
`require'
  from
/home/jaimin/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in
`require'
  from mysql.rb:2:in `<main>'

How can I solve this error?

Jesús Gabriel y Galán wrote in post #1139464:

/home/jaimin/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in

`require'
  from mysql.rb:2:in `<main>'

How can I solve this error?

First of all, make sure you are requiring the gem, which is probably

require 'mysql'

Also, not sure if this is your case, but if you name your file exactly
the same as a gem that you require, you can have problems. Try
renaming your ruby file to something different to mysql.rb

If I require gem(mysql) then how to install it?

If I am using require 'mysql' then I got error like:

/home/jaimin/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in
`require': cannot load such file -- mysql (LoadError)
  from
/home/jaimin/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in
`require'
  from mysql.rb:2:in `<main>'

So Then after I used require './mysql' then I got error like:

/home/jaimin/mysql.rb:6:in `<top (required)>': uninitialized constant
Mysql (NameError)
  from
/home/jaimin/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in
`require'
  from
/home/jaimin/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in
`require'
  from mysql.rb:2:in `<main>'

I changed file name then also I got same error.

Kind regards.

···

On Tue, Mar 11, 2014 at 10:05 AM, Jaimin Pandya <lists@ruby-forum.com> > wrote:

--
Posted via http://www.ruby-forum.com/\.

Jesús Gabriel y Galán wrote in post #1139464:

/home/jaimin/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in

`require'
  from mysql.rb:2:in `<main>'

How can I solve this error?

First of all, make sure you are requiring the gem, which is probably

require 'mysql'

Also, not sure if this is your case, but if you name your file exactly
the same as a gem that you require, you can have problems. Try
renaming your ruby file to something different to mysql.rb

If I require gem(mysql) then how to install it?

You should read a tutorial about gems:

gem install mysql

(or maybe with sudo, depending on your system).

If I am using require 'mysql' then I got error like:

/home/jaimin/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in
`require': cannot load such file -- mysql (LoadError)

This usually means that you have not installed the gem. Try installing
first as per above.

Jesus.

···

On Tue, Mar 11, 2014 at 12:05 PM, Jaimin Pandya <lists@ruby-forum.com> wrote:

On Tue, Mar 11, 2014 at 10:05 AM, Jaimin Pandya <lists@ruby-forum.com> >> wrote:

Jesús Gabriel y Galán wrote in post #1139474:

···

On Tue, Mar 11, 2014 at 12:05 PM, Jaimin Pandya <lists@ruby-forum.com> > wrote:

How can I solve this error?

If I require gem(mysql) then how to install it?

You should read a tutorial about gems:

gem install mysql

(or maybe with sudo, depending on your system).

previously By using this command -- sudo apt-get install mysql-server
mysql-client I installed MySQL.

Is it right to install gem again?

Kind regards.

--
Posted via http://www.ruby-forum.com/\.

Jesús Gabriel y Galán wrote in post #1139474:

How can I solve this error?

If I require gem(mysql) then how to install it?

You should read a tutorial about gems:

gem install mysql

(or maybe with sudo, depending on your system).

previously By using this command -- sudo apt-get install mysql-server
mysql-client I installed MySQL.

This is not the gem, this is the server and a client.

Is it right to install gem again?

I think you haven't done it yet, so yes, try doing:

gem install mysql

Jesus.

···

On Tue, Mar 11, 2014 at 12:23 PM, Jaimin Pandya <lists@ruby-forum.com> wrote:

On Tue, Mar 11, 2014 at 12:05 PM, Jaimin Pandya <lists@ruby-forum.com> >> wrote:

Jesús Gabriel y Galán wrote in post #1139477:

previously By using this command -- sudo apt-get install mysql-server
mysql-client I installed MySQL.

This is not the gem, this is the server and a client.

Is it right to install gem again?

I think you haven't done it yet, so yes, try doing:

gem install mysql

I used "gem install mysql" then I got error:

Fetching: mysql-2.9.1.gem (100%)
Building native extensions. This could take a while...
ERROR: Error installing mysql:
  ERROR: Failed to build gem native extension.

    /home/jaimin/.rvm/rubies/ruby-2.0.0-p353/bin/ruby extconf.rb
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details.
You may
need configuration options.

Provided configuration options:
  --with-opt-dir
  --without-opt-dir
  --with-opt-include
  --without-opt-include=${opt-dir}/include
  --with-opt-lib
  --without-opt-lib=${opt-dir}/lib
  --with-make-prog
  --without-make-prog
  --srcdir=.
  --curdir
  --ruby=/home/jaimin/.rvm/rubies/ruby-2.0.0-p353/bin/ruby
  --with-mysql-config
  --without-mysql-config
  --with-mysql-dir
  --without-mysql-dir
  --with-mysql-include
  --without-mysql-include=${mysql-dir}/include
  --with-mysql-lib
  --without-mysql-lib=${mysql-dir}/
  --with-mysqlclientlib
  --without-mysqlclientlib
  --with-mlib
  --without-mlib
  --with-mysqlclientlib
  --without-mysqlclientlib
  --with-zlib
  --without-zlib
  --with-mysqlclientlib
  --without-mysqlclientlib
  --with-socketlib
  --without-socketlib
  --with-mysqlclientlib
  --without-mysqlclientlib
  --with-nsllib
  --without-nsllib
  --with-mysqlclientlib
  --without-mysqlclientlib
  --with-mygcclib
  --without-mygcclib
  --with-mysqlclientlib
  --without-mysqlclientlib

Gem files will remain installed in
/home/jaimin/.rvm/gems/ruby-2.0.0-p353/gems/mysql-2.9.1 for inspection.
Results logged to
/home/jaimin/.rvm/gems/ruby-2.0.0-p353/gems/mysql-2.9.1/ext/mysql_api/gem_make.out

How to solve this?

Kind regards.

···

On Tue, Mar 11, 2014 at 12:23 PM, Jaimin Pandya <lists@ruby-forum.com> > wrote:

--
Posted via http://www.ruby-forum.com/\.