2009-07-30 31 views
15

Tengo una nueva aplicación de rieles que he creado en Windows 7 yendo a un directorio y escribiendo "rails newapp". La creación fue bien, y cuando accedo a la página raíz, todo está bien. Sin embargo, cuando intento acceder a una página que acceder a la base de datos, me sale esto:"193:% 1 no es una aplicación válida Win32" error con una nueva aplicación Rails

193: %1 is not a valid Win32 application. 

En el developer.log. Mysql está funcionando bien en mi máquina, y tengo otras aplicaciones que ejecuto aquí en otros directorios, es solo esta que no funciona. ¿Alguna idea?

+0

También estoy teniendo este problema. Si descubrió lo sucedido, por favor publique. Haré lo mismo si/cuando me entero. – Ryan

Respuesta

26

Aquí está la respuesta que funcionó para mí. Resulta que era un problema de x64 vs. x32 y Rails 2.3.2.

La respuesta que obtuve de aquí (http://osdir.com/ml/RubyonRailsTalk/2009-06/msg01775.html):

En caso de que alguien más tiene el mismo problema después de mucha lucha en mi máquina de Windows XP x64, con MySQL 5.1.30 (x64) y Rails 2.3.2 instalado, esta sugerencia anterior me ayudó. Descargue libMySql.dll desde aquí (http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/) y colocándolo en ruby ​​\ bin resolvió el problema .

+1

La solución vinculada parece ser un truco. No estoy contento con las soluciones que parecen magia negra. ¿No podría ser realmente un problema con el uso de la versión de 64 bits de MySQL con Rails (o tal vez solo con WEBrick)? Continuaré experimentando descargando e instalando la versión de 32 bits de MySQL en lugar de mezclar en una DLL desde la versión en el paquete InstantRails. –

+1

Es un truco para estar seguro, es porque el soporte de MySQL para Windows es irregular en el mejor de los casos. – aronchick

+0

genial !! ¡Esto había existido por casi un año! pero ¿por qué Ruby nunca arregla esto? Sigo teniendo el problema ... GRRRR – Sufendy

1

Este error se produce si tiene un archivo con el nombre "Programa" en la raíz de su unidad. Supongamos, por ejemplo, que está intentando ejecutar "C: \ Archivos de programa \ SomeApp \ Bin \ SomeExe.Exe", e intenta ejecutar "C: \ Program" si existe. En algunas situaciones, se crea un archivo con este nombre si olvida citar "C: \ Archivos de programa ..." con algunos comandos de línea de comando. Por supuesto, esto también aplica para usted D: unidad, etc.

Este error a menudo ocurre si intenta iniciar servicios, pero puede ocurrir en otras situaciones.

Simplemente eliminando el archivo C: \ Program o D: \ Program etc. resuelve el problema.

+0

Hola --- este no fue el problema para mí, ya que no tengo un programa así en la raíz de mi disco. – aronchick

0

haber corrido en varias cuestiones configurar MySQL con Rails en Windows x64 mis recomendaciones son:

  • instalar la versión de 32 bits de MySQL, no trate de utilizar la versión de 64 bits.
  • instalándolo en una ruta sin espacios, no acepte un valor predeterminado como " C: \ Archivos de programa \ MySQL \ MySQL Server 5.5 \ "
  • Instalar la gema MySQL con una invocación similar a:
      gem install mysql -- --platform=ruby --with-mysql-dir="D:\Programs\MySQL\MySQL-Server-5.5" --with-libmysqllib="D:\Programs\MySQL\MySQL-Server-5.5\lib\"
  • Asegúrese de desinstalar/reinstalar la gema siempre que instale una nueva versión de MySQL.
  • Asegúrese de que D: \ Programs \ MySQL \ MySQL-Server-5.5 \ lib esté incluido en su ruta, así como D: \ Programs \ MySQL \ MySQL-Server-5.5 \ bin. Asegúrese de que otras copias de libmysql.dll no se recogen en ningún otro lugar de su ruta ni en sus directorios de instalación de ruby.

Esto funcionó para mí con mysql-5.5.15-win32, mysql-2.8.1-x86-mingw32 y Windows 7 x64.

    +1

    Umm, no, no lo hace, esto simplemente pasa el "no es un Win32 válido ...", todavía segfaults en db: crear, ver http://stackoverflow.com/questions/5020152/rake-dbcreate-failing -on-win7-x64 Esto definitivamente está roto, copió el libMySql.dll de InstantRails como todos los demás. –

    0

    Copia el archivo libmysql.dll desde el directorio de instalación y pegarlo en el directorio bin de la instalación de Ruby. Es posible que deba descargar un archivo zip desde http://dev.mysql.com/downloads/mysql/ si su directorio de instalación de MySQL no incluye el archivo libmysql.dll.

    6

    solucionar siguiendo las instrucciones que aparecen en este blog aquí: http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/

    que implica el uso de la versión no instalador del conector MySQL http://dev.mysql.com/downloads/connector/c/

    no pude conseguir WEBrick para ejecutarse en el sistema de Windows 7 x64 - tiene el mismo error

    "193:% 1 no es una aplicación Win32 válida”

    Si Acabo de cambiar el libmysql.dll archivo (como se sugiere en puestos de arriba), que tiene un error diferente .

    "versión incorrecta biblioteca cliente de MySQL!"

    Mi camino establecido así: C: \ Ruby187 \ bin; C: \ Archivos de programa \ MySQL \ MySQL Server 5.5 \ bin; C: \ Ruby187 \ lib \ ruby ​​\ gemas \ 1.8 \ gemas \ carriles-3.1.1 \ bin

    (no era necesario cambiar la ruta de nuevo)

    -2

    el uso de ruby ​​(1.8.7) con MySQL (5.5) en Windows 7 y también obteniendo el error 193. Copiar el libmySQL.dll a ruby ​​/ bin funcionó bien para mí.

     
    C:\Work\redmine-2.4.1\config\database.yml content: 
    
    # Default setup is given for MySQL with ruby1.9. If you're running Redmine 
    # with MySQL and ruby1.8, replace the adapter name with `mysql`. 
    # Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end. 
    # Line indentation must be 2 spaces (no tabs). 
    
    production: 
        adapter: mysql 
        database: redmine 
        host: localhost 
        username: root 
        password: "[email protected]" 
        encoding: utf8 
    
    
    Cuestiones relacionadas