Ruby Forum Ruby on Rails > Error: uninitialized constant MysqlCompat::MysqlRes

Posted by Martin J. (mja)
on 31.07.2009 21:00
Hi,
I installed the "kwatch-mysql-ruby" gem on my Debian server but when I
try to run the "db:migrate" task I get the following error:

** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
rake aborted!
uninitialized constant MysqlCompat::MysqlRes
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:440:in
`rescue in load_missing_constant'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:436:in
`load_missing_constant'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:80:in
`const_missing_with_dependencies'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/connection_adapters/mysql_adapter.rb:9:in
`define_all_hashes_method!'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/connection_adapters/mysql_adapter.rb:71:in
`mysql_connection'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in
`new_connection'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:245:in
`checkout_new_connection'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:188:in
`block (2 levels) in checkout'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in
`loop'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in
`block in checkout'
/usr/local/lib/ruby/1.9.1/monitor.rb:190:in `mon_synchronize'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:183:in
`checkout'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:98:in
`connection'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:326:in
`retrieve_connection'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:123:in
`retrieve_connection'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:115:in
`connection'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/migration.rb:435:in
`initialize'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/migration.rb:400:in
`new'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/migration.rb:400:in
`up'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.3/lib/active_record/migration.rb:383:in
`migrate'
/usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.3/lib/tasks/databases.rake:116:in
`block (2 levels) in <top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:636:in `block
in execute'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:631:in
`execute'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:597:in `block
in invoke_with_call_chain'
/usr/local/lib/ruby/1.9.1/monitor.rb:190:in `mon_synchronize'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:590:in
`invoke_with_call_chain'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:583:in
`invoke'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2051:in
`invoke_task'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2029:in
`block (2 levels) in top_level'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2029:in
`each'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2029:in
`block in top_level'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2068:in
`standard_exception_handling'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2023:in
`top_level'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2001:in
`block in run'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2068:in
`standard_exception_handling'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/usr/local/bin/rake:31:in `<main>'
Posted by fernanda.aispuro (Guest)
on 25.08.2009 00:10
(Received via mailing list)
Hi there,

I just started using aptana and am working on my HelloWorld, but I'm
gettin the same error "uninitialized constant MysqlCompat::MysqlRes".
Did you ever figure out what is it about?

Thanks!

On Jul 31, 12:00 pm, "Martin J." <rails-mailing-l...@andreas-s.net>
Posted by Caleb Cullen (pandemic)
on 27.08.2009 20:07
Martin J. wrote:
> Hi,
> I installed the "kwatch-mysql-ruby" gem on my Debian server but when I
> try to run the "db:migrate" task I get the following error:
> 
> ** Invoke db:migrate (first_time)
> ** Invoke environment (first_time)
> ** Execute environment
> ** Execute db:migrate
> rake aborted!
> uninitialized constant MysqlCompat::MysqlRes

I saw this, having freshly installed Rails 2.3.3, and then being told to 
run 'gem install mysql' because the MySQL client is no longer bundled 
with Rails, as of 2.2

Okay, I did that.  Then I got the error message you showed in your post 
-- about MysqlCompat::MysqlRes not being defined.

Turns out there is no such thing; this error is caused by a malfunction 
of the mysql-2.8.1 gem.

If you install the gem by hand, chances are when you run the test you'll 
find that the gem's bundle doesn't actually manage to load the 
mysqlclient library.  (On my MacOS X 10.5.8 system, it's a .dylib; under 
Linux it may be a .so)

The error message I saw during the test phase looked like this:

./mysql.bundle: dlopen(./mysql.bundle, 9): Library not loaded: 
/usr/local/mysql/lib/mysql/libmysqlclient.15.dylib (LoadError)
  Referenced from: 
/Users/ccullen/Projects/npapp-v2/mysql-ruby-2.8.1/mysql.bundle
  Reason: image not found - ./mysql.bundle
  from test.rb:5

From that message you can see it's looking for the mysqlclient library 
in a directory one level too deep, vis-a-vis the location my libraries 
occupy:
/usr/local/mysql/lib is right; /usr/local/mysql/lib/mysql is not.

It is however pretty simple to create a 'mysql' symlink inside 
/usr/local/mysql/lib and point it at '.', allowing the broken 
mysql.bundle to locate its libraries.

This is definitely a hack.  I just wanted to help, since I haven't seen 
any answers posted, and certainly nothing to explain why this error is 
occurring.

Best of luck!
Posted by Kyle Fox (Guest)
on 29.08.2009 00:56
(Received via mailing list)
To fix this, specify ARCHFLAGS when you install the 'mysql' gem:

sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-
config=/usr/local/mysql/bin/mysql_config

On Aug 27, 12:07 pm, Caleb Cullen <rails-mailing-l...@andreas-s.net>
Posted by Evan Green (lostcoder)
on 19.09.2009 23:15
This didn't seem to fix the error for me.  I still get 'uninitialized 
constant MysqlCompat::MysqlRes'


Kyle Fox wrote:
> To fix this, specify ARCHFLAGS when you install the 'mysql' gem:
> 
> sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-
> config=/usr/local/mysql/bin/mysql_config
> 
> On Aug 27, 12:07�pm, Caleb Cullen <rails-mailing-l...@andreas-s.net>


cheers,
Posted by Glenn (Guest)
on 29.09.2009 15:59
(Received via mailing list)
I also built the gem with the archflags, but am still getting this
error.  Did anyone find a different reason that might be causing this?

On Sep 19, 11:15 pm, Evan Green <rails-mailing-l...@andreas-s.net>
Posted by Pishty Ags (pishty)
on 29.09.2009 21:42
Evan Green wrote:
> This didn't seem to fix the error for me.  I still get 'uninitialized 
> constant MysqlCompat::MysqlRes'
> 
> 
> Kyle Fox wrote:
>> To fix this, specify ARCHFLAGS when you install the 'mysql' gem:
>> 
>> sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-
>> config=/usr/local/mysql/bin/mysql_config
>> 
>> On Aug 27, 12:07�pm, Caleb Cullen <rails-mailing-l...@andreas-s.net>
> 
> 
> cheers,

on my Centos Machine, i had to install mysql-devel.x86_64 first, then i 
ran the command:

env ARCHFLAGS="-arch x86_64" gem install mysql -- 
--with-mysql-config=/usr/lib64/mysql/mysql_config

which did the trick.

thanks  Kyle
Posted by Jean Bombeur (jeanbombeur)
on 30.09.2009 06:36
Anybody still has the issue?

I have been using jruby for a while but today I was trying to setup 
using the last version of ruby 1.9 and rails 2.3.4 and I got hit with 
that.

Also running centos and tried the ARCHFLAGS trick with no success.


Pishty Ags wrote:
> Evan Green wrote:
>> This didn't seem to fix the error for me.  I still get 'uninitialized 
>> constant MysqlCompat::MysqlRes'
>> 
>> 
>> Kyle Fox wrote:
>>> To fix this, specify ARCHFLAGS when you install the 'mysql' gem:
>>> 
>>> sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-
>>> config=/usr/local/mysql/bin/mysql_config
>>> 
>>> On Aug 27, 12:07�pm, Caleb Cullen <rails-mailing-l...@andreas-s.net>
>> 
>> 
>> cheers,
> 
> on my Centos Machine, i had to install mysql-devel.x86_64 first, then i 
> ran the command:
> 
> env ARCHFLAGS="-arch x86_64" gem install mysql -- 
> --with-mysql-config=/usr/lib64/mysql/mysql_config
> 
> which did the trick.
> 
> thanks  Kyle
Posted by Jean Bombeur (jeanbombeur)
on 30.09.2009 06:46
Actually, doing more research and an strace on the process I found the 
problem.

Looking in the wrong place for the location of the library, I added my 
mysql lib directory to ld.so.conf/mysql.conf config file and it fixed 
it.


Jean Bombeur wrote:
> Anybody still has the issue?
> 
> I have been using jruby for a while but today I was trying to setup 
> using the last version of ruby 1.9 and rails 2.3.4 and I got hit with 
> that.
> 
> Also running centos and tried the ARCHFLAGS trick with no success.
> 
> 
> Pishty Ags wrote:
>> Evan Green wrote:
>>> This didn't seem to fix the error for me.  I still get 'uninitialized 
>>> constant MysqlCompat::MysqlRes'
>>> 
>>> 
>>> Kyle Fox wrote:
>>>> To fix this, specify ARCHFLAGS when you install the 'mysql' gem:
>>>> 
>>>> sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-
>>>> config=/usr/local/mysql/bin/mysql_config
>>>> 
>>>> On Aug 27, 12:07�pm, Caleb Cullen <rails-mailing-l...@andreas-s.net>
>>> 
>>> 
>>> cheers,
>> 
>> on my Centos Machine, i had to install mysql-devel.x86_64 first, then i 
>> ran the command:
>> 
>> env ARCHFLAGS="-arch x86_64" gem install mysql -- 
>> --with-mysql-config=/usr/lib64/mysql/mysql_config
>> 
>> which did the trick.
>> 
>> thanks  Kyle
Posted by Aarthi Ruby (learn_ruby)
on 13.10.2009 02:17
Hi

 ************* URGENT PLEASEEEEEEEEEEEEEEEEEEEEEEEEEE ***********
I still see the problem after following the above steps.
Please please help me.

~Sam.

==============================================================================
ruby script/server
=> Booting Mongrel
=> Rails 2.3.4 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
/!\ FAILSAFE /!\  Mon Oct 12 17:15:15 -0700 2009
  Status: 500 Internal Server Error
  uninitialized constant MysqlCompat::MysqlRes
    /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dep 
endencies.rb:440:in `load_missing_constant'
    /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dep 
endencies.rb:80:in `const_missing'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/mysql_adapter.rb:9:in `define_all_hashes_method!'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/mysql_adapter.rb:66:in `mysql_connection'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/abstract/connection_pool.rb:223:in `send'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/abstract/connection_pool.rb:223:in `new_connection'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/abstract/connection_pool.rb:245:in 
`checkout_new_connection'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/abstract/connection_pool.rb:188:in `checkout'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/abstract/connection_pool.rb:184:in `loop'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/abstract/connection_pool.rb:184:in `checkout'
    /usr/local/lib/ruby/1.8/monitor.rb:242:in `synchronize'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/abstract/connection_pool.rb:183:in `checkout'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/abstract/connection_pool.rb:98:in `connection'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/abstract/connection_pool.rb:326:in `retrieve_connection'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/abstract/connection_specification.rb:123:in 
`retrieve_connection'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/abstract/connection_specification.rb:115:in `connection'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/query 
_cache.rb:9:in `cache'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/query 
_cache.rb:28:in `call'
    /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/conne 
ction_adapters/abstract/connection_pool.rb:361:in `call'
    /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/fai 
lsafe.rb:26:in `call'
    /usr/local/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in 
`call'
    /usr/local/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in 
`synchro                     nize'
    /usr/local/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in 
`call'
    /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dis 
patcher.rb:114:in `call'
    /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/rel 
oader.rb:34:in `run'
    /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dis 
patcher.rb:108:in `call'
    /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/rails/rack/static.rb:31:in 
`call'
    /usr/local/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:46:in 
`call'
    /usr/local/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in 
`each'
    /usr/local/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in 
`call'
    /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/rails/rack/log_tailer.rb:1 
7:in `call'
    /usr/local/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:i 
n `call'
    /usr/local/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/chunked.rb:15:in 
`call                     '
    /usr/local/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:61: 
in `process'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in 
`proce                     ss_client'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in 
`each'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in 
`proce                     ss_client'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in 
`run'
    /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285
==============================================================================

Jean Bombeur wrote:
> Actually, doing more research and an strace on the process I found the 
> problem.
> 
> Looking in the wrong place for the location of the library, I added my 
> mysql lib directory to ld.so.conf/mysql.conf config file and it fixed 
> it.
> 
> 
> Jean Bombeur wrote:
>> Anybody still has the issue?
>> 
>> I have been using jruby for a while but today I was trying to setup 
>> using the last version of ruby 1.9 and rails 2.3.4 and I got hit with 
>> that.
>> 
>> Also running centos and tried the ARCHFLAGS trick with no success.
>> 
>> 
>> Pishty Ags wrote:
>>> Evan Green wrote:
>>>> This didn't seem to fix the error for me.  I still get 'uninitialized 
>>>> constant MysqlCompat::MysqlRes'
>>>> 
>>>> 
>>>> Kyle Fox wrote:
>>>>> To fix this, specify ARCHFLAGS when you install the 'mysql' gem:
>>>>> 
>>>>> sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-
>>>>> config=/usr/local/mysql/bin/mysql_config
>>>>> 
>>>>> On Aug 27, 12:07�pm, Caleb Cullen <rails-mailing-l...@andreas-s.net>
>>>> 
>>>> 
>>>> cheers,
>>> 
>>> on my Centos Machine, i had to install mysql-devel.x86_64 first, then i 
>>> ran the command:
>>> 
>>> env ARCHFLAGS="-arch x86_64" gem install mysql -- 
>>> --with-mysql-config=/usr/lib64/mysql/mysql_config
>>> 
>>> which did the trick.
>>> 
>>> thanks  Kyle
Posted by Raphael Petegrosso (Guest)
on 16.10.2009 01:54
(Received via mailing list)
I was having the same problem on Snow Leopard and, after some time I
did the following:

Removed all mysql gems I had:

gem uninstall mysql

In my case I had to specify both mysql-dir and mysql-config (and -arch
x86_64 to 64 bits)

export ARCHFLAGS="-arch i386 -arch x86_64" ; gem install --no-rdoc --
no-ri mysql -- --with-mysql-dir=/usr/local --with-mysql-config=/usr/
local/mysql/bin/mysql_config

Hope it works
Posted by Aarthi Ruby (learn_ruby)
on 16.10.2009 08:43
Raphael Petegrosso wrote:
> I was having the same problem on Snow Leopard and, after some time I
> did the following:
> 
> Removed all mysql gems I had:
> 
> gem uninstall mysql
> 
> In my case I had to specify both mysql-dir and mysql-config (and -arch
> x86_64 to 64 bits)
> 
> export ARCHFLAGS="-arch i386 -arch x86_64" ; gem install --no-rdoc --
> no-ri mysql -- --with-mysql-dir=/usr/local --with-mysql-config=/usr/
> local/mysql/bin/mysql_config
> 
> Hope it works

I was able to resolve this issue. Thanks for your valuable suggestions.
Along with the above steps, I had to configure the LD_LIBRARY_PATH.
Posted by Andrew McDonough (andrewmcdonough)
on 22.10.2009 16:26
These instructions also worked for me after upgrading to Snow Leopard. 
In my case mysql was in /opt/local/lib/mysql5, so the following fixed it 
for me:

sudo gem uninstall mysql

export ARCHFLAGS="-arch i386 -arch x86_64" ; gem install --no-rdoc 
--no-ri mysql -- --with-mysql-dir=/opt/local/lib/mysql5 
--with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config


> I was having the same problem on Snow Leopard and, after some time I
> did the following:
> 
> Removed all mysql gems I had:
> 
> gem uninstall mysql
> 
> In my case I had to specify both mysql-dir and mysql-config (and -arch
> x86_64 to 64 bits)
> 
> export ARCHFLAGS="-arch i386 -arch x86_64" ; gem install --no-rdoc --
> no-ri mysql -- --with-mysql-dir=/usr/local --with-mysql-config=/usr/
> local/mysql/bin/mysql_config
> 
> Hope it works
Posted by Caleb Cullen (pandemic)
on 22.10.2009 17:33
Andrew McDonough wrote:
> These instructions also worked for me after upgrading to Snow Leopard. 
> In my case mysql was in /opt/local/lib/mysql5, so the following fixed it 
> for me:
> 
> sudo gem uninstall mysql
> 
> export ARCHFLAGS="-arch i386 -arch x86_64" ; gem install --no-rdoc 
> --no-ri mysql -- --with-mysql-dir=/opt/local/lib/mysql5 
> --with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config

I was able to get the mysql gem to compile by doing something like that; 
but then I found that, for whatever reason, /tmp/mysql.sock did not 
exist (and so my rake tasks failed, etc).  I followed instructions on 
the Rails blog to install MySQL from a DMG, and then /tmp/mysql.sock 
existed as expected.

HTH.
Posted by grosser.michael (Guest)
on 24.10.2009 15:03
(Received via mailing list)
had the same, switching to 2.7 helps
sudo gem install mysql -v 2.7

On 22 Okt., 17:33, Caleb Cullen <rails-mailing-l...@andreas-s.net>
Posted by Guglielmo Celata (guglielmo)
on 11.11.2009 20:12
grosser.michael wrote:
> had the same, switching to 2.7 helps
> sudo gem install mysql -v 2.7
> 
> On 22 Okt., 17:33, Caleb Cullen <rails-mailing-l...@andreas-s.net>
I was able to install the mysql v. 2.7 gem on a macport mysql version 
with:

sudo gem install -v 2.7 --no-rdoc --no-ri mysql -- 
--with-mysql-dir=/opt/local/lib/mysql5 
--with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config;
Posted by Steven Hampton (wolfravenous)
on 16.12.2009 19:49
If you are still getting this issue, I have posted an EXPLANATION as 
well as how to derive the correct solution for your system here 
http://techliberty.blogspot.com/ the EXPLANATION was to long for a forum 
post :)
Posted by Aarthi Ruby (learn_ruby)
on 16.12.2009 23:26
Steven Hampton wrote:
> If you are still getting this issue, I have posted an EXPLANATION as 
> well as how to derive the correct solution for your system here 
> http://techliberty.blogspot.com/ the EXPLANATION was to long for a forum 
> post :)

Thanks a lot Steven. I am not seeing this issue now, but will definitely 
go through your explanation..!!!
Posted by Roger Collins (rogercollins)
on 26.12.2009 16:11
Posted by Rick Casey (rixter)
on 22.01.2010 06:35
Caleb

Could I ask what test you were running during the "test phase" you 
mention below?

I'm really stumped by my problems with this bug, and am trying to 
determine if my error has the same cause.

thanks,
Rick

Caleb Cullen wrote:
> Martin J. wrote:
>> Hi,
>> I installed the "kwatch-mysql-ruby" gem on my Debian server but when I
>> try to run the "db:migrate" task I get the following error:
>> 
>> ** Invoke db:migrate (first_time)
>> ** Invoke environment (first_time)
>> ** Execute environment
>> ** Execute db:migrate
>> rake aborted!
>> uninitialized constant MysqlCompat::MysqlRes
> 
> I saw this, having freshly installed Rails 2.3.3, and then being told to 
> run 'gem install mysql' because the MySQL client is no longer bundled 
> with Rails, as of 2.2
> 
> Okay, I did that.  Then I got the error message you showed in your post 
> -- about MysqlCompat::MysqlRes not being defined.
> 
> Turns out there is no such thing; this error is caused by a malfunction 
> of the mysql-2.8.1 gem.
> 
> If you install the gem by hand, chances are when you run the test you'll 
> find that the gem's bundle doesn't actually manage to load the 
> mysqlclient library.  (On my MacOS X 10.5.8 system, it's a .dylib; under 
> Linux it may be a .so)
> 
> The error message I saw during the test phase looked like this:
> 
> ./mysql.bundle: dlopen(./mysql.bundle, 9): Library not loaded: 
> /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib (LoadError)
>   Referenced from: 
> /Users/ccullen/Projects/npapp-v2/mysql-ruby-2.8.1/mysql.bundle
>   Reason: image not found - ./mysql.bundle
>   from test.rb:5
> 
> From that message you can see it's looking for the mysqlclient library 
> in a directory one level too deep, vis-a-vis the location my libraries 
> occupy:
> /usr/local/mysql/lib is right; /usr/local/mysql/lib/mysql is not.
> 
> It is however pretty simple to create a 'mysql' symlink inside 
> /usr/local/mysql/lib and point it at '.', allowing the broken 
> mysql.bundle to locate its libraries.
> 
> This is definitely a hack.  I just wanted to help, since I haven't seen 
> any answers posted, and certainly nothing to explain why this error is 
> occurring.
> 
> Best of luck!
Posted by Wang Timor (timor)
on 27.01.2010 04:07
>> Pishty Ags wrote:
>>> Evan Green wrote:
>>>> This didn't seem to fix the error for me.  I still get 'uninitialized 
>>>> constant MysqlCompat::MysqlRes'
>>>> 
>>>> 
>>>> Kyle Fox wrote:
>>>>> To fix this, specify ARCHFLAGS when you install the 'mysql' gem:
>>>>> 
>>>>> sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-
>>>>> config=/usr/local/mysql/bin/mysql_config
>>>>> 
>>>>> On Aug 27, 12:07�pm, Caleb Cullen <rails-mailing-l...@andreas-s.net>
>>>> 
>>>> 
>>>> cheers,
>>> 
>>> on my Centos Machine, i had to install mysql-devel.x86_64 first, then i 
>>> ran the command:
>>> 
>>> env ARCHFLAGS="-arch x86_64" gem install mysql -- 
>>> --with-mysql-config=/usr/lib64/mysql/mysql_config
>>> 
>>> which did the trick.
>>> 
>>> thanks  Kyle

I use Centos , but it's i386 . So I installd mysql-devel,and use the
command:
env ARCHFLAGS="-arch i386" gem install mysql --
--with-mysql-config=/usr/lib/msyql/mysql_config",
and it did the work , Aha!
Posted by Nikhil Gupte (nikhilgupte)
on 28.01.2010 17:15
For all you folks who couldn't get this to work on Snow Leopard inspite 
of trying the ridiculously simple solution(s) mentioned above,

Try this:
Re compile ruby. Then do

sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- 
--with-mysql-config=/usr/local/mysql/bin/mysql_config

This will ensure that the *right* arch of ruby is used to compile the 
native extensions.
Posted by Jean Nibee (jeannibee)
on 25.02.2010 04:07
Nikhil Gupte wrote:
> For all you folks who couldn't get this to work on Snow Leopard inspite 
> of trying the ridiculously simple solution(s) mentioned above,
> 
> Try this:
> Re compile ruby. Then do
> 
> sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- 
> --with-mysql-config=/usr/local/mysql/bin/mysql_config
> 
> This will ensure that the *right* arch of ruby is used to compile the 
> native extensions.

and how do you recompile Ruby...

New to the OSX platform...

Thanks.
Posted by Andrew C. (Guest)
on 25.02.2010 07:27
(Received via mailing list)
Posted by Nikhil Gupte (nikhilgupte)
on 25.02.2010 07:36
Jean,

Best is to install macports, if you aren't already using it.

To re-compile ruby, run:

sudo port install ruby
Posted by Mike Montagne (mikemontagne)
on 22.03.2010 01:45
Nikhil Gupte wrote:
> Jean,
> 
> Best is to install macports, if you aren't already using it.
> 
> To re-compile ruby, run:
> 
> sudo port install ruby

I was able to get mysql gem to install on OSX Leopard without warnings 
with the --no-rdoc and --no-ri switches; archflags likewise eliminated 
the uninitialized constant error:

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

That hasn't made my installation functional however. I just rebuilt my 
entire project with rails myApp -d mysql; I then scaffolded 5 sets of 
tables (i.e. script/generate scaffold tablename c_code:string 
c_name:string tran_id:integer priority:integer); I next drag the project 
directory onto XCode Organizer; create the start server script 
(script/server); and start the gem server in terminal: gem server.

Fine and dandy so far (seemingly). Then I run rake db:migrate to 
engender the following error:

iMacMike:pfmpe mikemontagne$ rake db:migrate --trace
(in /Users/mikemontagne/rproj/pfmpe)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
rake aborted!
Unknown database 'pfmpe_development'

----------

database.yml indicates that this is supposed to be the development 
database. But no such file exists in my project directory.

Is this a MySQL server configuration issue? Does anybody understand why 
this table is not being created?
Posted by Hassan Schroeder (Guest)
on 22.03.2010 02:14
(Received via mailing list)
On Sun, Mar 21, 2010 at 5:45 PM, Mike Montagne <lists@ruby-forum.com> 
wrote:

> iMacMike:pfmpe mikemontagne$ rake db:migrate --trace

> Unknown database 'pfmpe_development'

> database.yml indicates that this is supposed to be the development
> database. But no such file exists in my project directory.

What file would you expect? This refers to a database, physical
location dependent on your MySQL configuration.

> Is this a MySQL server configuration issue? Does anybody understand why
> this table is not being created?

Perhaps you left out the step where you create it? At least I didn't see
it in your post. You can create databases manually through the MySQL
CLI console or a number of other tools, or you can run the appropriate
rake task. `rake -T` will give you a list of the available tasks.

But you *do* have to create it before running your migrations :-)

HTH,
--
Hassan Schroeder ------------------------ hassan.schroeder@gmail.com
twitter: @hassan
Posted by Oren Golan (oreng)
on 06.07.2010 20:52
I had this issue after upgrading from ubuntu 9.10 (karmic) to 10.4 
(lucid).
the solution was to libmysqlclient16-dev:

sudo aptitude install libmysqlclient16-dev
Posted by Jatin kumar (Guest)
on 06.07.2010 21:16
(Received via mailing list)
I am not sure of why this error is coming, but just for a moment, try 
rake
db:create before doing rake db:migrate.
It might solve your problem.
Posted by Sandip Jassar (sandipjassar)
on 10.07.2010 22:54
Jatin kumar wrote:
> I am not sure of why this error is coming, but just for a moment, try 
> rake
> db:create before doing rake db:migrate.
> It might solve your problem.

The Mysql::Result constant is defined in the mysql_api gem (.so shared 
object) - this is located in 
gems/1.9.1/gems/mysql-2.8.1/ext/mysql_api/mysql_api.so

To fix the error the cleanest way I could think of - I created a 
symbolic link to this object in /usr/lib/ruby/1.9.1/ - which is in 
Ruby's $LOAD_PATH variable - which you can see your own version via : 
irb; puts "#{$LOAD_PATH}";

- None of the solutions people had posted on the web helped me - the 
main ones I kept seeing were - reinstall the mysql gem with ARCH_FLAGS 
set differently - and make a symbolic link mysql -> '.' because Ruby was 
looking one directory too deep

I'm using Ubuntu Karamic Koala, Ruby 1.9.1, mysql-2.8.1, rails-2.3.5
Posted by Na Na (apolloe)
on 17.07.2010 08:26
Using Mac OS X 10.6.4, the solutions above didn't work for me.  I 
removed the gem, then tried:
gem install ruby-mysql

instead of the various attempts to get "gem install mysql" to work.

At a glance, this appears to have worked, and my ruby on rails is able 
to access database.
Posted by Derek Lei (dlei)
on 22.07.2010 12:21
Thanks Na Na, I was able to fix the issue by uninstalling the mysql gem 
and then installing ruby-mysql gem.

Na Na wrote:
> Using Mac OS X 10.6.4, the solutions above didn't work for me.  I 
> removed the gem, then tried:
> gem install ruby-mysql
> 
> instead of the various attempts to get "gem install mysql" to work.
> 
> At a glance, this appears to have worked, and my ruby on rails is able 
> to access database.