Installazione gem di Ruby MYSQL2 su Windows 7

Sto cercando di installare mysql2 gem su Windows 7 Ho scaricato il connettore dal sito mysql e ho inserito libmysql.dll in ruby200 \ bin

quindi installa gem mysql2

Questi sono i risultati in cui sono debole qui?

Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. C:/Ruby200/bin/ruby.exe extconf.rb checking for rb_thread_blocking_region()... yes checking for rb_wait_for_single_fd()... yes checking for rb_hash_dup()... yes checking for rb_intern3()... yes *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=C:/Ruby200/bin/ruby --with-mysql-dir --without-mysql-dir --with-mysql-include --without-mysql-include=${mysql-dir}/include --with-mysql-lib --without-mysql-lib=${mysql-dir}/ extconf.rb:37:in `': undefined method `[]' for nil:NilClass (NoMethodError ) Gem files will remain installed in C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0. 3.13 for inspection. Results logged to C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.13/ext/mysql2/g em_make.out 

EDIT 30/09/2014

Quando è stata pubblicata questa risposta, il programma di installazione delle guide a 64 bit non era la versione consigliata: ora sembra che le persone stiano iniziando ad usarlo di più. Si noti che quando si scarica il connettore MySQL è necessario scaricare 64 o 32 bit per corrispondere alla versione dei binari installati.

Sorprendentemente ho avuto una risposta molto presto stamattina mentre stavo cercando qualcosa di simile. Non sono del tutto sicuro del motivo per cui non esiste una guida semplice per questo in quanto sembra essere molto semplice!

Per qualche ragione semplicemente specificando mysql-dir quando installi la gem non si raccoglie con altre sottodirectory quindi devi impostare i parametri manualmente.

Per chiunque altro abbia riscontrato lo stesso problema, ho fatto quanto segue:

1) Scarica il connettore MySql C da: http://dev.mysql.com/downloads/connector/c/

NOTA Non scaricare il programma di installazione, scaricare l’ARCHIVIO per il proprio sistema operativo

Scarica l’ARCHIVIO a 32 o 64 bit in modo che corrisponda alla versione dei binari installata.

2) Estrai il file in C: \ mysql-connector

3) Quindi ha funzionato:

  gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysql-connector"' 

Voila tutto funziona bene.

EDIT 30/01/2014

Ho appena dovuto eseguire una nuova installazione su una macchina in muratura e il comando nel passaggio 3 non ha funzionato, ciò che ha funzionato è stato:

 gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:\mysql-connector"' 

Non sono abbastanza sicuro di quale sia la differenza ma stavolta sembra che stia andando a prendere le directory ok, quindi se il primo non funziona prova questo!

Penso che questo abbia a che fare con l’installazione delle guide, questa volta ho usato il railsinstaller che sembra impostare correttamente i percorsi.

Gran parte del risultato qui sembra dipendere dalla shell che usi, molte persone hanno problemi con PowerShell quindi non consiglierei di usarlo. Ho fatto questo in un prompt dei comandi con privilegi elevati.

Oh e infine se si verifica un errore riguardante mysql2 gem quando si esegue RAILS S è necessario copiare libmysql.dll dalla directory LIB del connettore mysql nella directory bin in cui sono state installate le rotaie.

Ho provato la soluzione di @Mrk Fldig ma non ha funzionato … Quindi, quello che ha risolto il problema è stato:

  1. Scaricato l’ultimo MySQL Installer per Windows 7 32 bit
  2. Installato il gem con il seguente comando: gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/Program Files/MySQL/MySQL Connector C 6.1 6.1.2/"'

Una trappola a cui prestare attenzione è che ho cambiato le barre retroverse (\) in barre normali (/). Ho provato la stessa procedura con i backslash e non ha funzionato.

Il programma di installazione include già i connettori C per MySQL nella directory MySQL Connector C 6.1 6.1.2 . Pertanto, passando solo il parametro --with-mysql-dir senza i parametri --with-mysql-lib o --with-mysql-include , rende la gem per guardare la stessa directory per lib e include directory

Passi per Ruby 2.1.3, Windows 8.1 e MySQL Server 5.7. Tutto x64 bit.

  1. Scarica il kit di sviluppo
  2. Kit di sviluppo estratto.
  3. Esegui CMD e vai a dir dove viene estratto il kit di sviluppo
  4. Esegui ruby dk.rb init
  5. Esegui l’ ruby dk.rb install
  6. Esegui gem install mysql2 -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.7\lib" --with-mysql-include="c:\Program Files\MySQL\MySQL Server 5.7\include" --with-mysql-dir="c:\Program Files\MySQL\MySQL Server 5.7"'

Questo è ciò che ha funzionato per me per lo stesso errore su Windows 8 a 64 bit e utilizzando Ruby a 64 bit

  1. Scarica e installa MySQL Server 5.6 a 64 bit
  2. Esegui questo comando:

     gem install mysql2 -v '0.3.16' -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.6\lib" --with-mysql-include="c:\Program Files\MySQL\MySQL Server 5.6\include"' 

Spero che questo ti aiuti

Ho provato tutti i metodi forniti, ma lo stesso errore appare ancora e ancora 🙁

Fortunatamente, la versione precedente è stata installata senza errori!

 gem uninstall mysql2 gem install mysql2 -v 0.2.6 

Prova a seguire questi passaggi:

Presumo:

  • a) usi Windows7
  • b) ruby ​​2+ su C: \ Ruby200-x64
  • c) rotaie 4+ installate su ruby
  • d) WAMP installato su C: \ wamp e in esecuzione

1) disinstalla la tua gem myslq2:

 $ gem uninstall mysql2 

2) reinstallare l’opzione mysql2 gem con il percorso:

 $ gem install mysql2 -- '--with-mysql-lib="C:\wamp\bin\mysql\mysql5.6.12\lib" --with-mysql-include="C:\wamp\bin\mysql\mysql5.6.12\include"' 

3) copia il libmysql.dll che trovi in ​​C: \ wamp \ bin \ mysql \ mysql5.6.12 \ lib in C: \ Ruby200-x64 \ bin

4) apri nel tuo binario app il file “Gemfile” e modificalo abilitando il mysql2, aggiungendo:

 gem 'mysql2' 

5) avvia il tuo server di rotaie:

 $ rails server 

6) apri il tuo browser e vai a localhost: 3000 /

Sto ancora avendo problemi con mysql2 gem ma sotto approccio mi ha aiutato a installare mysql con RoR su Windows Env.

Passaggio 1: modifiche al file gem: ({app} / Gemfile)

Aggiorna mysql2 -> mysql

Passaggio 2: aggiornamenti nel file database.yml ({app} /config/database.yml)

Cambia adattatore: mysql2 -> adattatore: mysql

host: localhost -> host: 127.0.0.1

Passaggio 3: Downoad mysql-connector-c-noinstall-6.0.2-win32

Passaggio 4: Copia il file mysql-connector-c-noinstall-6.0.2-win32 \ lib \ libmysql.dll in C: \ RailsInstaller \ Ruby1.9.3 \ bin

Passaggio 5: aggiornamento del pacchetto && Avvia il server delle guide

Ecco cosa ha funzionato per me:

 gem install mysql2 -- '--with-mysql-dir="C:\wamp\bin\mysql\mysql5.5.xx"' 

Ho cercato per qualche ora e non ho visto questa variante suggerita, quindi spero che possa aiutare qualcuno!

Prova anche a disabilitare il tuo antivirus prima di installare la gem. Il mio è stato installato dopo che ho eseguito il seguente comando:

 gem install mysql2 --platform=ruby -- '--with-mysql-lib= "C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connector\include" --wit h-mysql-dir="C:\mysql-connector"' 

Lo stesso comando non funzionava quando il mio antivirus era abilitato, poiché stava spingendo un po ‘di file ruby ​​sul torace. Spero che questo aiuti qualcuno.

Per Cygwin, potrei consolidare vari passaggi.

  1. Utilizzare cygwin setup.exe per scaricare gcc, g ++, make, cmake e libmysqlclient-devel (dalle porte cygwin)
  2. Scarica c / connector src per windows dal sito mysql. Ho scaricato la versione 6.x. OPPURE scaricare la versione di libmysqlclient-devel (non sicuro da dove)
  3. Unzip
  4. cd dir_connector
  5. Non richiesto e RISKY, ma se cygwin libmysqlclient-devel versione è 5.5.40, quindi cambiare dir_connector / versioni del file VERSION a 5.5.40
  6. mkdir build
  7. cd build
  8. commenta dtoa in stdlib.h, altrimenti la compilazione fallisce
  9. cmake ..
  10. rendere
  11. fare installare
  12. gem install mysql2 – –with-mysql-config = / usr / local / mysql / bin / mysql_config

Ho scaricato il devkit a 32 bit, con il mio pc a 64 bit, tuttavia mi rendo conto che railsinstaller apparentemente installa una versione a 32 bit per impostazione predefinita, quindi ho diretto tutte le funzionalità a 32 bit.

Inizializza il Ruby Devkit dk.rb init

Scarica il connettore mysql a 32 bit e posizionalo nel connettore mysql C: \ mysql-connector

Dovresti essere consapevole che quando decomprimi il file, crea una sottocartella con lo stesso nome e può dare errori.

Quindi utilizzare il secondo comando elencato sopra:

 gem install mysql2 - platform = ruby - '- with-mysql-dir = "C: \ mysql-connector"' 

Questa è stata la soluzione che ho trovato, perché avevo lo stesso problema.

Su Windows 7 ho scoperto che le risposte esistenti fornivano una soluzione parziale, ma non riuscivo ancora a installarla.

Il problema che ho avuto è stato il fatto che l’installer di Windows MySQL Community Edition che ho usato insisteva nel mettere i connettori in cartelle chiamate cose come C:\MySQL\MySQL Connector C 6.1.3 . Il processo di compilazione della gem riportava che non riusciva a trovare “C: \ MySQL \ MySQL” (e prima che lo avessi in Program Files, si lamentava che non riusciva a trovare “C: \ Program \ includes”) quindi chiaramente gli spazi erano un problema e non riuscivo a trovare un modo per sfuggirli che poteva capire – forse qualcuno potrebbe suggerire uno di questi.

Poiché non ero sicuro che la modifica di questi avrebbe rotto l’installazione, una volta capito perché il problema stava sorgendo ho appena creato un collegamento simbolico dalla riga di comando (qualcosa che è più semplice da cmd di PowerShell) come questo:

 C:\MySQL> mklink /D ConnectorC ".\MySQL Connector C 6.1.3" 

Quindi potrei usare la seguente linea di installazione:

  gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/MySQL/ConnectorC/"' 

Questo ha funzionato correttamente.

Inoltre, quando ho provato ad usarlo, mi sono imbattuto in questo problema, quindi potrebbe essere utile essere consapevoli che spostare il file lib di MySQL dalla cartella lib del C Connector potrebbe essere utile.

Sono riuscito a riuscirci per pura fortuna, ma dopo un’ora di inferno mi sento come se dovessi condividere la mia soluzione, ovviamente molto abbreviata ma molti dei passi che penso tu possa capire come fare da soli.

La mia macchina è Win 7 64 bit. Sono stato in grado di installare la versione 0.3.16

  1. Installa Ruby versione 2.0.0p481 (?)
  2. Devkit blah blah
  3. Installa le guide versione 4.0.0
  4. Scarica il file zip Mysql Connector C a 64 bit, inserisci l’unità C come mysqlc
  5. Prendi DLL da quel cestino, mettilo in lib of ruby
  6. gem install mysql2 – – with-mysql-dir = “C: \ mysqlc”

Ha funzionato per me dopo aver aggiunto alcune modifiche

 gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\Program Files\MySQL\MySQL Connector C 6.1.5\lib" --with-mysql-include="C:\Program Files\MySQL\MySQL Connector C 6.1.5\include" --with-mysql-dir="C:\Program Files\MySQL\MySQL Connector C 6.1.5" 

Niente di tutto ciò ha funzionato per me, fino a quando ho realizzato che ho installato la versione a 64 bit di DevKit. Così ho scaricato il connettore MySQL 64 bit / C dal sito web MySQL

e ha installato la gem con l’opzione “with-mysql-dir”

Ecco cosa ho fatto per Windows Server 2012 SP2. Nient’altro ha funzionato …

Dopo aver ricevuto l’errore 'while installing mysql2 (0.3.17), and bundler cannot continue' Make sure that 'gem install mysql2 -v '0.3.17' succeeds...

1) Scarica il connettore MySql C da: http://dev.mysql.com/downloads/connector/c/

2) Extract the file to C:\mysql-connector

3) gem install mysql2 -v '0.3.17' --platform=ruby -- '--with-mysql-dir="C:\mysql-connector"'

Nota: il -v ‘0.3.17’ sopra, non funzionerebbe senza questo.

4) bundle install -> Infine, Success.