Instalación de MySQL2 Gem en Windows

Tenía algunos problemas para instalar la gema mysql2 en mi máquina con Windows 8.1. Seguí las instrucciones de este post:

Ruby MYSQL2 gema de instalación en Windows 7

para instalar elmysql2 gema, y ​​no recibí ningún mensaje de error.

Seguí esto con el

bundle install 

comando, y confirmó que las siguientes gemas están instaladas (usando bundle show), confirmando que tengo las siguientes gemas instaladas:

Using devise (3.2.2)
Using mysql2 (0.3.14)

Entonces traté de hacer:

rails generate devise:install

y esto es lo que tengo

C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `require': 126: The specified module could not be found.   
- C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2/mysql2.so (LoadError)
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `<top (required)>'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in `require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in `each'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in `block in require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `each'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler.rb:131:in `require'
    from C:/Users/Joseph/googledrive/projects/rails/test_new_devise/config/application.rb:7:in `<top (required)>'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.2/lib/rails/commands.rb:43:in `require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.2/lib/rails/commands.rb:43:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

¿Algunas ideas?

Solución:

La respuesta es una combinación de dos respuestas de stackoverflow, más modificaciones. Las referencias de stackoverflow son:

Ruby MYSQL2 gema de instalación en Windows 7 ... mysql2 / mysql2.so: [BUG] Fallo de segmentación ruby ​​2.0.0p247

En pocas palabras: para que mysql2 funcione en un entorno de 64 bits con Ruby 2 en Windows 8.1, debe hacer lo siguiente:

Limpiar: la razón por la que está aquí es porque probablemente ha estado intentando instalar esta gema, y ​​ha fallado, por lo que tiene que realizar una limpieza: gema desinstalar mysql2

Descargar Ruby 2.0 64 bit para Windows:

http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct

Ejecuta el instalador. Anote el directorio en el que se instala y asegúrese de que esté en la RUTA del usuario. ir

Control Panel > System and Security > System - Advanced System Settings > Environment Variables

y asegúrese de que la ruta al directorio bin del directorio de instalación de ruby ​​esté en la variable de entorno PATH para el usuario LOCAL (también está bien si está en la variable de entorno de la ruta del SISTEMA)

Descarga el kit de desarrollo de Ruby 2 64 bit:

http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe

Ejecute el instalador y anote la ubicación del directorio de instalación. Las instrucciones dicen que una vez que haya terminado con la instalación, debe ejecutar el archivo devkitvars.bat para establecer las variables de entorno. Esto NO funciona para Windows 8.1. Debe repetir las instrucciones para establecer la ruta de acceso local descrita en el # 2 anterior, para configurar la variable de entorno de ruta para que el usuario local agregue el directorio de ruby ​​dev kit bin y el directorio de ruby ​​dev kit mingw bin. Por ejemplo, si el kit de desarrollo se instaló en c: \ ruby2devkit, e instaló ruby2 en el directorio C: \ Ruby200-x64, entonces edite su declaración de ruta para que se vea así:

C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin

Luego necesitas instalar el conector mysql. NO descargue y ejecute el autoinstalador. En su lugar, descargue el archivo zip y descomprímalo. Tenga en cuenta el directorio en el que lo desempaquetó (para los fines de esta publicación, supongamos que lo desempaquetó en c: \ mysql-connector:

http://dev.mysql.com/downloads/file.php?id=450612

El libmysql.lib incluido en el MySQL Connector 64 bit no es compatible con el compilador mingw64-gcc. Debe generar un archivo libmysql.lib compatible con mingw64.

Descarga las herramientas que necesitas

https://structure-svm-map.googlecode.com/files/svm-map-win.zip

Descomprima este archivo en un directorio local, supongamos que lo descomprimió en c: \ svm-map

Edite la ruta del entorno PATH, como se describió anteriormente, para tener este aspecto:

C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin;c:\svm-map;C:\svm-map\python-mingw-lib

Genera las nuevas librerías mysql:

(make sure you're running as administrator)

cd c:\mysql-connector\lib

gendef.exe libmysql.dll

dlltool -v --dllname libmysql.dll --def libmysql.def --output-lib libmysql.lib

copy libmysql.dll C:\Ruby200-x64\bin

copy libmysql.lib C:\Ruby200-x64\bin

Instale la gema de la siguiente manera (tenga en cuenta el uso de barras diagonales hacia adelante en lugar de barras diagonales inversas, se producirá un error si utiliza barras diagonales inversas):

gema instalar mysql2 --platform = ruby ​​- '--with-mysql-dir = "C: / mysql-connector /"'

Espero que esto ayude, y espero que alguien preste atención a los pocos usuarios de Windows 8.1 que quieren hacer el desarrollo de Ruby on Rails.

Respuestas a la pregunta(1)

Su respuesta a la pregunta