2009-08-27 20 views
28

Tengo un proyecto de Ruby on Rails que estaba desarrollando en un servidor alojado pero he decidido trabajar en mi máquina local de Windows.Ruby on rails connection problem

Para comenzar, pensé que me aseguraría de poder sacar mis modelos del proyecto antiguo y ponerlos en un nuevo proyecto y luego consultarlos en la consola. Esto falla

Edición para reflejar un problema más preciso: La conexión que construye rails para consultar mis modelos puede ejecutar solo una consulta y luego da la excepción "No conectado" para todas las consultas posteriores. ¿Alguien sabe lo que está pasando? Revisé mi configuración, mucho. Si hay alguna configuración en el servidor de MySQL que no conozco, estaría dispuesto a analizarla.

Seguimiento de la pila:

Price.find(1) 
ActiveRecord::StatementInvalid: Mysql::Error: query: not connected: SHOW FIELDS FROM `prices` 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:212:in `log' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/mysql_adapter.rb:320:in `execute' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/mysql_adapter.rb:466:in `columns' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1271:in `columns' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1279:in `columns_hash' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1578:in `find_one' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1569:in `find_from_ids' 
     from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:616:in `find' 
     from (irb):2 

He verificado que mi base de datos MySQL está aceptando conexiones y tiene los datos y la estructura que cabe esperar. He comprobado dos veces mis conexiones, etc. ¿Alguien puede arrojar algo de luz?

+0

¿Está ejecutando en prod, dev o prueba? ¿Qué pasa si cambias esto? – marcgg

+0

se puede conectar, consulta falla >> requieren "mysql" => [] = >> TestConn Mysql.real_connect ("localhost", "lco_admin", "****", "lastcall_dev") => # >> testconn.get_server_info => "5.1.37-comunidad" >> testconn.host_info => "localhost a través de TCP/IP" >> testconn.list_tables => [ "bar_schedules" , "bars", "bars_features", "beverages", "features", "prices", "recurinccestions", "special_schedules", "specials", "timespans"] >> testconn.query ("select * from prices") Mysql :: Error: consulta: no está conectado desde (irb): 7: en 'consulta ' f rom (irb): 7 – marr75

+0

Estoy experimentando exactamente el mismo problema que tú @ marr75. ¡Definitivamente voy a publicar esto si lo resuelvo! – jonsidnell

Respuesta

82

he encontrado una solución a este problema en un aptana forum.

Allí dice que la biblioteca de cliente MySQL 5.1 no funciona bien con Rails 2.2 La solución que ofrecen es simple: descargue una biblioteca de cliente MySQL anterior (libmySQL.dll) y cópiela en su carpeta Ruby \ bin.

Esto funcionó para mí (Windows XP, Ruby 1.8.6, 2.3.3 Rails, MySQL 5.1.33)

+0

¡Dulce! Funcionó para mí también :) – jonsidnell

+2

Muchas gracias. Es decepcionante que en los muchos lugares donde los proyectos de MySQL y Ruby se vinculan entre sí, incluidas las guías paso a paso sobre cómo hacer que esta pila funcione en Windows, este elemento no se ha mencionado. – marr75

+3

¡Guau, me alegro de haber encontrado esta publicación! Funciona muy bien ahora, gracias por la propina chicos! –

3

Compruebe que ha recibido la última joya de MySQL (por carriles> 2.1.2)

Verifica que config/database.yml archivo (adaptador, contraseñas). Compruebe que esté configurado correctamente para todos los entornos (dev, test prod)

verificar que su MySQL se está ejecutando

+0

Comprobé la gema varias veces, revisé todas mis gemas de hecho. Sé que la configuración de la base de datos es correcta porque si la rompo a propósito, ya no puedo obtener información sobre mi configuración (una o más de las consultas de información del servidor fallan). Por esta misma razón, sé que puede comunicarse con Mysql y que mysql se está ejecutando (si desactivo el servicio, ya no puedo ver información sobre mi configuración desde la página de bienvenida). – marr75

1

descarga una biblioteca mayor cliente de MySQL

+0

La respuesta ya está publicada. Gracias de cualquier forma. – marr75