2009-10-12 14 views
20

Tengo un problema con la conexión a la base de datos MySQL en mi máquina Windows 7 recién instalada. Recibo este error cuando intento migrar mi base de datos.Controlador MySQL para Rails en Windows 7 x64

!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install 
the mysql gem and try again: gem install mysql. 
rake aborted! 
193: %1 is not valid Win32 application - C:/Ruby/lib/ruby/gems/1.8/gems/mysql-2.8.1-x86-mswin32/lib/1.8/mysql_api.so 

que tiene instalados actualmente

ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32] 
mysql version 5.0.86 for Win64 
gem 1.3.1 
mysql-2.8.1-x86-mswin32 

Respuesta

51

Mi colega tuvo un problema similar al ejecutar raíles en Windows 7. Tuvo que reemplazar el libmySQL.dll (en el PATH) con el de InstantRails.

+2

impresionante, funciona :) (en las máquinas Win7 y Vista) ... me salvaste la vida, mucho –

+1

¡Gracias! No he podido hacer el desarrollo de los rieles en Windows debido a esto. Todo está mejor ahora. – captncraig

+3

Solo para su información, la RUTA a la que se hace referencia arriba es (de forma predeterminada): C: \ Archivos de programa \ MySQL \ MySQL Server 5.1 \ bin \ libmySQL.dll Cambie el nombre del archivo y reemplácelo por el archivo descrito anteriormente. – aronchick

4

pasé horas tratando de obtener MySQL y rieles para jugar muy bien en Windows (XP, aunque las versiones de 32 y 64 bits). Finalmente me di por vencido ya que mi caja de producción estaba ejecutando Linux (en el que Rails y MySQL funcionan muy bien) y simplemente usé SQLite 3 para el desarrollo. No hay dolores de cabeza para que funcione y funciona lo suficientemente rápido para fines de desarrollo.

Sin embargo, escuché de algunas personas que tuvieron suerte reemplazando una de las DLL proporcionadas por la gema con una proporcionada por la distribución oficial de MySQL. Además, algunas personas simplemente no tenían esta DLL en absoluto, lo que causaba problemas. Al final, no funcionó para mí, pero espero que tengas más suerte.

+0

buena idea acerca de sqlite, pero, por desgracia, tampoco funciona: \ see http://stackoverflow.com/questions/1557414/ruby-on-rails-sqlite-problem-on-windows-7-x64 –

+0

@Darth - Hombre, eso apesta. Nunca he tenido problemas con SQLite. Supongo que tiene algo que ver con 64 bits o con Windows 7, y estoy en una Mac, así que no puedo hacer más pruebas. Hay algunas otras bases de datos que Rails admite. Para que te vayas, puedes probar uno de ellos. –

+0

@Topher Fangio: Bueno, desafortunadamente tienes razón sobre el Win7. El problema con sqlite fue que no obtuve el error sobre la pérdida de dll, que se muestra en Vista, pero Win7 de alguna manera no mostró nada (http://stackoverflow.com/questions/1557414/ruby-on-rails-sqlite -problem-on-windows-7-x64). En este momento estoy trabajando con SQLite en desarrollo, que funciona muy bien, porque mi servidor de producción está en Linux VPS, por lo que no hay problema. Tengo incluso más problemas con el procesamiento de imágenes, que también está lleno de errores en Vista x64 :(Supongo que esta es una de las veces, que hace que las personas cambien de sistema operativo :) –

0

¿Esto podría estar relacionado con Ruby on Rails Win7 x64?? Si es así, ¿cuál fue la solución de nuevo (no se pudo resolver a partir de la primera respuesta)?

1

Soy nuevo en esta materia. Acabo de pasar el mismo problema en vista. después de descargar libmySQL.dll (en la RUTA) con el de InstantRails, comienza a funcionar.

[email protected]

0

Otra opción que ha trabajado para mí es descargar la versión de 32 bits de MySQL para Windows y sólo mantener la libmysql.dll y añadir la ubicación de este DLL a la ruta de Windows.

0

Añadiendo libmySQL.dll de InstantRails a un directorio en mi camino funcionó para mí también. Es realmente triste que tengamos que hacer este tipo de cosas sin embargo. Me gustaría ver que la gema, o MySql en sí mismo, instale esta DLL correctamente.

0

Estoy ejecutando las versiones actuales de todo en WinXP SP3: Ruby 1.9.2p0, MySQL 5.5, mysql 2.8.1. Este problema aún está presente y para solucionarlo tuve que copiar Instant Rails libmysql.dll en mi directorio C: \ Ruby192 \ bin. Inicialmente copié el archivo libmysql.dll que venía con MySQL 5.5 pero eso causó un error de seq!

2

Para Rails o DataMapper o lo que sea que hable con MySQL necesita un controlador de 32 bits en Rails \ bin. El controlador se llama libmysql.dll. Incluso si tiene un servidor de 64 bits, necesita un controlador de 32 bits.

El controlador de 64 bits fallará ruby ​​/ gems/1.8/gems/do_mysql-0.10.2-x86-mingw32/lib/do_mysql/1.8/do_mysql.so: 193:% 1 no es una aplicación Win32 válida.

Una versión incorrecta de 32 bits se bloqueará con un error de asignación de memoria o algo así (la solución sugerida para tomar libmysql.dll de otro proyecto puede no funcionar con las versiones más recientes de MySQL).

+0

Se proporciona una discusión detallada y solución a este problema en [Installing-mysql-on-windows-7-x64-and-using-ruby-with-it] (http://blog.mmediasys.com/2011/07/ 07/installation-mysql-on-windows-7-x64-and-using-ruby-with-it /) – Zeeshan

1

La solución a este problema es simplemente instalar la versión de 32 bits de mysql.

+0

No tiene que ser una versión mysql de 32 bits. Solo necesitas el conector mysql de 32 bits. Este problema se ha discutido en detalle en este enlace http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/. – Zeeshan

1

Avance rápido hasta marzo de 2012. Solucioné este problema en Windows 7 x64) al renombrar mi Ruby \ b \ bin \ libmysql.dll y luego copiar libmysql.dll desde C: \ Archivos de programa (x86) \ MySQL \ MySQL Connector C 6.0.2 \ lib \ opt a Ruby \ bin

Hubo una versión más reciente de libmysql.dll en C: \ Archivos de programa (x86) \ MySQL \ MySQL Workbench CE 5.2.37 pero a la gema no le gustó la versión no 6.x.

Cuestiones relacionadas