Uninitialized constant Mysql2

Ciao a tutti,
sono nuovo nel mondo ruby e in particolare nel mondo rails. Vi scrivo
perch non riesco a far funzionare Rails con MySql su Windows. Ho
provato varie configurazione e la situzione abbastanza strana:

Se uso la gemma mysql (non mysql2) non riesco a connettermi al db e
quando ci provo ruby mi dice che non riesce ad accedere e poi
segmentation fault e infiene mi viene rovinata la password del DB e
poi non riesco pi a connettermici neanche con i programmi di
amministrazione, sembra incredibile ma cos.

Usando la gemma mysql2 dopo varie peripezie sono riuscito a compilarla
ma ho avuto lo stesso risultato, non riesco a connettermi, ruby da
segmentation fault, password rovinata e impossibilit di accedere al
DB

La mia confiurazione windows 7 e MySql 5.1

C’ qualcuno che pu aiutarmi? Questa configurazione mi serve perch
devo affiancare un applicazione WEB che gi esiste su windows e MySQL

Grazie 1000 e saluti
Gianluca

O.o …

Il 16/06/2011 18:58, Gianluca P. ha scritto:

Il giorno 16 giugno 2011 18:58, Gianluca P. [email protected]
ha
scritto:

La mia confiurazione windows 7 e MySql 5.1

Ciao Gianluca.
La padovanit sia sempre con te (messaggio in codice :slight_smile:

La soluzione usare in C:\Ruby\bin la libmysql.dll di MySQL 5.0
Vedi http://www.fuyun.org/2010/01/ruby-mysql-adapter-on-windows e
Bug #4573: [BUG] Segmentation fault - Ruby interpreter (CUI) 1.9.2p180 [i386-mingw32] has stopped working - Ruby master - Ruby Issue Tracking System

Ciao
Sergio

Il giorno 17 giugno 2011 12:11, Gianluca P. [email protected]
ha
scritto:

Quando ho letto la tua mail ho avuto un sussulto, che sia la
soluzione? e poi … non si trova la dll libmysql.dll ver 5.0 cos mi
ritrovo con solo i sorgenti di MySQL 5.0 da compilare e ora mi sono
lanciato …
speriamo ma la vedo grigissima!!!

Prova qua http://downloads.mysql.com/archives.php?p=mysql-5.0
Per win64 e win32
http://downloads.mysql.com/archives.php?p=mysql-5.0&o=-win

Ciao
Sergio

Il 17 giugno 2011 12:39, Sergio B. [email protected] ha
scritto:

Prova qua http://downloads.mysql.com/archives.php?p=mysql-5.0
Per win64 e win32 http://downloads.mysql.com/archives.php?p=mysql-5.0&o=-win

Trovato grazie, (ero riuscito a compilarlo :-)), ho fatto una prova al
volo e ancora non va ne usando la gemma mysql ne usando la gemma
mysql2 ma sinceramente, ho fatto tanto di quel casino che non sono pi
sicuro di niente ma sembra continuare a rovinarmi la password del DB,
per sistemare la cosa devo ripristinare tutta la directory dove ci
sono i DB …

Stasera/domani provo meglio e vi so dire, per ora grazie 1000 per
l’aiuto

Saluti
Gianluca

Il 16 giugno 2011 20:27, Sergio B. [email protected] ha
scritto:

La padovanit sia sempre con te (messaggio in codice :slight_smile:
Sempre e costante !!!

La soluzione usare in C:\Ruby\bin la libmysql.dll di MySQL 5.0
Vedi http://www.fuyun.org/2010/01/ruby-mysql-adapter-on-windows e
Bug #4573: [BUG] Segmentation fault - Ruby interpreter (CUI) 1.9.2p180 [i386-mingw32] has stopped working - Ruby master - Ruby Issue Tracking System

Quando ho letto la tua mail ho avuto un sussulto, che sia la
soluzione? e poi … non si trova la dll libmysql.dll ver 5.0 cos mi
ritrovo con solo i sorgenti di MySQL 5.0 da compilare e ora mi sono
lanciato …
speriamo ma la vedo grigissima!!!

Saluti
Gianluca

Il giorno 17 giugno 2011 15:03, Gianluca P. [email protected]
ha
scritto:

Trovato grazie, (ero riuscito a compilarlo :-)), ho fatto una prova al
volo e ancora non va ne usando la gemma mysql ne usando la gemma
mysql2 ma sinceramente, ho fatto tanto di quel casino che non sono pi
sicuro di niente ma sembra continuare a rovinarmi la password del DB,
per sistemare la cosa devo ripristinare tutta la directory dove ci
sono i DB …

Stasera/domani provo meglio e vi so dire, per ora grazie 1000 per l’aiuto

Aspetta riepiloghiamo un attimo :slight_smile:

Che versione di ruby e rails stai mettendo su Win 7 ?
Ruby 1.9.2 e Rails 3.0.9 ?

facendo da prompt

– c:> gem install mysql

ottieni questo

– Fetching: mysql-2.8.1-x86-mingw32.gem (100%)
– Successfully installed mysql-2.8.1-x86-mingw32
– 1 gem installed
– Installing ri documentation for mysql-2.8.1-x86-mingw32…
– Installing RDoc documentation for mysql-2.8.1-x86-mingw32…

o da qualche errore ?

Hai scaricato il ruby DevKit ed hai fatto questo:

– 1. Download MySQL 5.0 (not 5.1) for Windows without installer" (unzip
in
C:) → versione 32 bit NON 64 bit
– 2. Unzip, put it in c:\mysql
– 3. Download latest mysql-ruby source as version 2.8.1. Unzip it, and
I
put it in C:\ruby directory.
– 4. Edit extconf so that anywhere it says mswin32 it now says
mswin32|mingw.
– 5. Make sure that mysql bin is not in your Windows PATH.
– 6. run in Command prompt ruby extconf.rb
with-mysql-include=c:/mysql/include with-mysql-lib=c:/mysql/lib/opt.
– 7. run in Command prompt make, and then make install.
– 8. Add libmysql.dll to your windows PATH. The path is
c:\mysql\lib\opt.
– 9. Exit from Command prompt, for PATHs to be reset, open again
Command
prompt and run ruby -e require mysql

Domanda: stai facendo tutto questo sullo stesso computer dove
installato
MySQL 5.1 (client e/o server) ? :wink:

Perch anche se hai ricompilato bene la gemma mysql-ruby 2.8.1 quando
activerecord la chiama e trova sul path libmysql.dll versione 5.1 →
errore
con segmentation fault.

Cio sul path deve trovare per prima la directory dove installata
libmysql.dll versione 5.0

Sempre che c:\mysql\bin (e c:\mysql\lib\opt) versione 5.1 non debbano
essere
prima di altro sul path per far funzionare il db server.
Se cos forse la soluzione spostare il db server (MySQL 5.1) altrove,
per esempio su un altro pc (o virtual machine).
Se ho capito bene adesso application server (tipo IIS a cui si aggiunge
Rails) e db server sono sulla stessa macchina.

Ciao
Sergio

2011/6/17 Gianluca P. [email protected]

fuori condivido la soluzione
Prova anche questo (nel computer attuale con db server MySQL 5.5, ruby e
rails)

Vai nella directory
c:\ruby\lib\ruby\gems\1.9.1\gems\mysql-2.8.1-x86-mingw32
Metti libmysql.dll (versione 5.0 … ed altre dll che servono al client
e
sono presenti in c:\mysql\lib\opt) nella sub directory lib\1.9
In teoria prima di cercarla nel path dovrebbe caricare quella che trova
nella directory locale.
Per fare qualche prova di connessione con ruby guarda nella sub
directory
test il file test_mysql.rb
Ci sono esempi utili :slight_smile:

Ciao
Sergio

Il 18 giugno 2011 12:42, Sergio B. [email protected] ha
scritto:

2011/6/17 Gianluca P. [email protected]

Per fare qualche prova di connessione con ruby guarda nella sub directory
test il file test_mysql.rb

Ciao Sergio Grazie per l’aiuto ma sinceramente non riesco a capire in
che situazione sono perch ho come l’impressione che rails non stia
usando la gem che ho installato. Mi spiego meglio, ho scaricato la gem
“mysql” non la “mysql2” quella una cosa a parte che ti spiego dopo,
ho scaricato i sorgenti, ricompilati, li ho addirittura modificati per
aggiungere dei log da consol e quando faccio girare i test da ruby
alcuni falliscono ma la maggior parte girano. Falliscono perch credo
usino dialetto di SQL che non riconosciuto da MySQL ma non rovinano
il DB. Ora se eseguo questi test vedo in console il debug se invece
eseguo il comando di rails non va, con il solito errore e senza
mostrare i log.

Una cosa ancora pi interessante se imposto nel Gemfile “mysql2”
(Using mysql2 (0.3.6)) in quel coso l’errore il seguente:

rake aborted!
Please install the mysql2 adapter: gem install activerecord-mysql2-adapter (no such file to load –
active_record/connection_adapters/mysql2_adapter)

Ora se faccio “gem install activerecord-mysql2-adapter” mi dice:

ERROR: Could not find a valid gem ‘activerecord-mysql2-adapter’ (>=
0) in any repository
ERROR: Possible alternatives: activerecord-jdbcmysql-adapter,
activerecord-jdbch2-adapter,
activerecord-jdbc-adapter, activerecord-jdbcmssql-adapter,
activerecord-nulldb-adapter

Insomma mi ritrovo che:

  1. se uso la gemma mysql non mi si connette al DB e a volte lo rovina
  2. Non riesco a usare la gemma mysql2

Mi sa che sono bloccato e su windows non fregato :frowning:

Qualcuno ha latri suggerimenti magari su come usare la gemma mysql2??
o su come spiegare a rails che deve usare la gemma mysql che gli ho
dato io?

grazie e saluti
Gianluca

Il 17 giugno 2011 17:30, Sergio B. [email protected] ha
scritto:

Che versione di ruby e rails stai mettendo su Win 7 ?
Ruby 1.9.2 e Rails 3.0.9 ?
Esatto!!!
– c:> gem install mysql

ottieni questo

– Fetching: mysql-2.8.1-x86-mingw32.gem (100%)
– Successfully installed mysql-2.8.1-x86-mingw32
– 1 gem installed
– Installing ri documentation for mysql-2.8.1-x86-mingw32…
– Installing RDoc documentation for mysql-2.8.1-x86-mingw32…
Esatto!!!

– 6. run in Command prompt ruby extconf.rb
with-mysql-include=c:/mysql/include with-mysql-lib=c:/mysql/lib/opt.
– 7. run in Command prompt make, and then make install.
– 8. Add libmysql.dll to your windows PATH. The path is c:\mysql\lib\opt.
– 9. Exit from Command prompt, for PATHs to be reset, open again Command
prompt and run ruby -e require mysql

S e ancora mi rovina la password di root quando lo lancio mi dice
questo:
C:\Users\gpadovani\workspace\ruby\rails\examples\blog>bundle exec rake
db:create
–trace
** Invoke db:create (first_time)
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
** Execute db:create
Access denied for user ‘root’@‘localhost’ (using password: NO).
Please provide the root password for your mysql installation

Io reinserisco la password di root mi dice che non va la reinserisco
poi mi da questo:
Access denied for user ‘root’@‘localhost’ (using password: YES)
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/connect
ion_adapters/mysql_adapter.rb:614:in real_connect' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/connect ion_adapters/mysql_adapter.rb:614:in connect’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/connect
ion_adapters/mysql_adapter.rb:164:in initialize' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/connect ion_adapters/mysql_adapter.rb:36:in new’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/connect
ion_adapters/mysql_adapter.rb:36:in mysql_connection' C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/connect ion_adapters/abstract/connection_pool.rb:229:in new_connection’
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.9/lib/active_record/connect
ion_adapters/abstract/connection_pool.rb:237:in
`checkout_new_connection’

[…]

La cosa che trovo strana che poi mi abbia rovinato la password del
DB e non riesco pi ad accedere

Domanda: stai facendo tutto questo sullo stesso computer dove installato
MySQL 5.1 (client e/o server) ? :wink:
S, MySQL 5.5 non 5.1

Perch anche se hai ricompilato bene la gemma mysql-ruby 2.8.1 quando
activerecord la chiama e trova sul path libmysql.dll versione 5.1 → errore
con segmentation fault.
Segmentation fault non lo da pi …

Se cos forse la soluzione spostare il db server (MySQL 5.1) altrove,
per esempio su un altro pc (o virtual machine).

S infatti vorrei anche provare su un altro Windows e vedere cosa
succede, grazie mille per l’aiuto sei stato gentilissimo, se ne salto
fuori condivido la soluzione

Saluti
Gianluca

Funziona!!! Grazie Sergio!!!
Vi dico cosa ho fatto, cos mi potete infamare perch tutta colpa
mia!!! (E forse qualcuno non fa il mio errore, anche se veramente
banale …

Dunque per prima cosa ho usato mysql2 ma credo che il problema sia
analogo per la gemma mysql.

Per prima cosa ho dovuto copiare la dll che trovo nell’installazione
di MySql sotto la directory di Ruby. Installare il devkit e compilare
nativamente. La versione da usare la 0.2.6 tutte le altre minori
della 3 non funzionano e sopra la 3 credo sia necessario usare ralis
3.1, ma di questo non sono sicuro.

Fatto questo sembrava andare ma dava questo strano errore, “can’t
convert Fixnum into String” sar che proprio oggi mi arrivato il
Pickaxe book, che ho capito, dentro il file database.yml avevo scritto
come utente e password

development:
adapter: mysql2
database: blog_development
encoding: utf8
username: root
password: 010101
host: localhost

SENZA gli apici per la password di root, per cui interpretava la
password come numero e non come stringa AHHHHHHHH (per capirlo ho
modificato il file dove dava l’errore della conversione)

Dopo essermi fustigato per circa un’ora vi ho scritto.

Grazie a tutti
Gianluca

Il giorno 25 giugno 2011 19:26, Gianluca P. [email protected]
ha
scritto:

Una cosa ancora pi interessante se imposto nel Gemfile “mysql2”
(Using mysql2 (0.3.6)) in quel coso l’errore il seguente:

[…]

Insomma mi ritrovo che:

  1. se uso la gemma mysql non mi si connette al DB e a volte lo rovina
  2. Non riesco a usare la gemma mysql2

Mi sa che sono bloccato e su windows non fregato :frowning:

Prova questo http://bit.ly/mKsNL2
Magari con mysql2 versione 0.2.11 mysql2 | RubyGems.org | your community gem host

Deve essere mysql2 (version < 0.3) con rails 3.0
:wink:

Sei proprio sei disperato prima del suicidio prova

Lo so, con ruby cos … installare Visual Studio e librerie .Net pi
semplice :slight_smile:

Ciao
Sergio