2009-07-30 21 views
15

Ho una nuova applicazione di rotaie che ho creato sotto Windows 7 andando in una directory e digitando "rails newapp". La creazione è andata bene, e quando accedo alla pagina radice, tutto va bene. Tuttavia, quando provo ad accedere a una pagina che avrebbe accedere al database, ottengo questo:"193:% 1 non è un bug dell'applicazione valida Win32" con una nuova applicazione Rails

193: %1 is not a valid Win32 application. 

Nel developer.log. Mysql sta funzionando bene sulla mia macchina, e ho altre applicazioni in cui ho eseguito qui in altre directory, è solo questo che non funziona. qualche idea?

+0

Ho anche questo problema. Se hai scoperto cosa è successo, per favore posta. Farò lo stesso se/quando lo scoprirò. – Ryan

risposta

26

Ecco la risposta che ha funzionato per me. Abbiamo scoperto che si trattava di un problema di x64 rispetto a x32 e di Rails 2.3.2.

La risposta che ho ricevuto da qui (http://osdir.com/ml/RubyonRailsTalk/2009-06/msg01775.html):

Nel caso qualcuno altro ha lo stesso problema dopo un sacco di lottare su mia macchina Windows XP x64, con MySQL 5.1.30 (x64) e Rails 2.3.2 installati, questo suggerimento sopra mi ha aiutato. Scarica libMySql.dll da qui (http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/) e mettendolo in ruby ​​\ bin risolto il problema .

+1

La soluzione collegata a sembra essere un hack. Non sono contento di soluzioni che sembrano magie nere. Questo potrebbe non essere un problema con l'uso della versione a 64 bit di MySQL con Rails (o forse solo con WEBrick)? Continuerò a sperimentare scaricando e installando la versione a 32 bit di MySQL invece di mixare una DLL dalla versione nel bundle di InstantRails. –

+1

È un trucco sicuro: è perché il supporto MySQL per Windows è al meglio delle ipotesi. – aronchick

+0

fantastico !! questo era stato intorno per quasi un anno !! ma perché Ruby non lo aggiusta mai? Sto ancora avendo il problema ... GRRRR – Sufendy

1

Questo errore si verifica se si ha un file con nome "Programma" nella directory principale dell'unità. Ad esempio, si sta tentando di eseguire "C: \ Programmi \ SomeApp \ Bin \ SomeExe.Exe" che tenta di eseguire "C: \ Program" se esiste. In alcune situazioni viene creato un file con questo nome se si dimentica di citare "C: \ Programmi ..." con alcuni comandi della riga di comando. Questo vale anche per te D: guida, ecc.

Questo errore si verifica spesso se si tenta di avviare i servizi, ma potrebbe verificarsi in altre situazioni.

L'eliminazione del file C: \ Program o D: \ Program ecc. Risolve il problema.

+0

Ciao --- questo non era il problema per me, dal momento che non ho un programma come quello sulla radice del mio disco. – aronchick

0

aver corso in molteplici questioni creazione di MySQL con Rails su Windows x64 mie raccomandazioni sono:

  • installare la versione a 32 bit di MySQL, non tentare di utilizzare la versione a 64 bit.
  • Installare in un percorso senza spazi, non accettare un default come " C: \ Programmi \ MySQL \ MySQL Server 5.5 \ "
  • Installare la gemma MySQL con un'invocazione simile 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\"
  • Assicurarsi di disinstallare/reinstallare la gemma ogni volta che si installa una nuova versione di MySQL.
  • Assicurarsi D: \ Programmi \ MySQL \ MySQL-server-5.5 \ lib è incluso nel percorso, così come D: \ Programmi \ MySQL \ MySQL-server-5.5 \ bin. Assicurati che altre copie di libmysql.dll non vengano prelevate da altrove sul tuo percorso o dalle tue ruby ​​installation directory.

questo ha funzionato per me con mysql-5.5.15-win32, mysql-2.8.1-x86-mingw32 e Windows 7 x64.

    +1

    Umm, no non lo è, questo appena supera "non un Win32 valido ...", segnaults ancora su db: create, vedi http://stackoverflow.com/questions/5020152/rake-dbcreate-failing -on-win7-x64 Questo è decisamente rotto, copiato libMySql.dll da InstantRails come tutti gli altri. –

    0

    Copiare il file libmysql.dll dalla directory di installazione di MySQL e incollarlo nella directory bin dell'installazione di Ruby. Potrebbe essere necessario scaricare un archivio zip da http://dev.mysql.com/downloads/mysql/ se la directory di installazione di MySQL non include già il file libmysql.dll.

    6

    risolto seguendo le istruzioni riportate su questo blog qui: http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/

    che comporta l'uso della versione non installatore del MySQL Connector http://dev.mysql.com/downloads/connector/c/

    non ho potuto ottenere webrick per essere eseguito su sistemi x64 di Windows 7 - GOT lo stesso errore

    "193:% 1 non è un'applicazione di Win32 valida”

    Se ho appena sostituito il file libmysql.dll (come suggerito nel post di cui sopra), ho ottenuto un errore diverso .

    "versione non corretta della libreria client MySQL!"

    mio percorso impostato in questo modo: C: \ Ruby187 \ bin; C: \ Programmi \ MySQL \ MySQL Server 5.5 \ bin; C: \ Ruby187 \ lib \ ruby ​​\ gemme \ 1.8 \ gemme \ rotaie-3.1.1 \ bin

    (non ha bisogno di modificare il percorso di nuovo)

    -2

    Utilizzando rubino (1.8.7) con MySQL (5.5) su Windows 7 e anche ricevendo l'errore 193. La copia di libmySQL.dll in ruby ​​/ bin ha funzionato bene per me.

     
    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 
    
    
    Problemi correlati