2015-03-31 7 views
6

Sto creando un'applicazione utilizzando RoR con mysql.Ho seguito i passaggi di seguito per creare app con mysql.Impossibile caricare il file libmysql.dll utilizzando Ruby on Rails 3

1-rails nuovo projectname -d mysql

2-rotaie generano impalcatura titolo del messaggio: stringa di corpo: il testo

Dopo aver eseguito il secondo passo che ho ottenuto il seguente errore.

Errore:

Failed to load libmysql.dll from C:\Ruby193\lib\ruby\gems\1.9.1\gems\mysql2-0.3. 
18-x86-mingw32\vendor\libmysql.dll 

ho installato mysql nel mio sistema e copiato il file libmysql.dll da mysql-connector-c-noinstall-6.0.2-win32 \ lib \ libmysql.dll a C: \ Ruby193 \ bin ancora sto ottenendo l'errore di cui sopra.Per favore prova ad aiutarmi a risolvere questo errore e sono anche interessato a sapere se il mio DB mysql è presente in qualche altra istanza invece del mio sistema locale come posso collegarlo usando Rails .

Sto usando Rails versione 3.2.19 e win-xp nel mio sistema.

risposta

10

Dopo alcuni "Google Work" e provare su un server Win2k3, sembra un caso problematico da "versione binaria di mysql2".

Nelle versioni recenti di mysql2, contiene libmysql.dll a differenza di prima che sia necessario compilare localmente e la versione di libmysql.dll proviene da MySQL Connector 6.1.x che rimuove il supporto di WinXp/2k3.

Così, si può provare in questo modo ho successo nella mia installazione Redmine:

  1. disinstallare la gemma mysql2 da gem uninstall mysql2 e rimuovere tutti i mysql2 pacchetto
  2. Scarica "MySQL Connector/C NoInstall" da MySQL quale versione dovrebbe essere inferiore a 6.1, nel mio caso è 6.0.2 (mysql-connector-c-noinstall-6.0.2-win32.zip), e decomprimere in un percorso, ad esempio "D: \ MySQLConn"
  3. Installa mysql2 con questo comando: gem install mysql2 --platform=ruby -- '--with-mysql-lib="D:\MySQLConn\lib" --with-mysql-include="D:\MySQLConn\include"'
  4. Eseguire l'installazione di Redmine `Bundle install --without test di sviluppo'
  5. check mysql2 gemma gem list mysql2
  6. Rimuovere la gemma che non "auto-compilato"(dal punto 3), come il nome "mysql2-0.3.18-x86-mingw32" e fare certo che esiste solo una versione "auto-compilata" di mysql2, che assomiglia a "mysql2-0.3.18"
  7. Fatto!

Spero che possa esserti utile.

+0

grazie Luuray, sono anch'io impostato redmine. ma in x64. i tuoi passaggi sono davvero d'aiuto :) – arced

+0

per chi ha problemi con l'installazione di Redmine in Windows. se inciampi su "rake db: migrate". è necessario disinstallare "mysql2-0.3.18-x86-mingw32 "versione con" gem uninstall mysql2 "quindi scegliere il numero 2 (per me). – arced

3

Ho scoperto che ci sono variazioni a 32 bit e 64 bit di libmysql.dll. Provate entrambi. Per me ha funzionato libmysql.dll a 32 bit.

1

Questo è successo a me dopo l'aggiornamento a mysql2 0.4.7+. Le versioni successive alla 0.4.6 utilizzano MySQL Connector C 6.1.10+. Il release notes menziona che per compilare MySQL Connector C, è necessario Visual C++ Redistributable for Visual Studio 2015 installato. Dopo averlo installato e reinstallato mysql2, l'errore è andato via.