No se puede instalar la gem MySQL2 en Windows 7

Recibo el siguiente mensaje de error durante la instalación, avíseme si necesito publicar más detalles.

Seguí las instrucciones de la siguiente ubicación: https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

Estoy usando ruby ​​1.9.2p136 (2010-12-25) [i386-mingw32].

Esto es lo que obtengo:

E:\work_desk\trunk>gem install mysql2 -v 0.2.4 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:/Ruby192/bin/ruby.exe extconf.rb checking for rb_thread_blocking_region()... yes checking for main() in -llibmysql... no *** 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:/Ruby192/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}/lib --with-libmysqllib --without-libmysqllib Gem files will remain installed in C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0. 2.4 for inspection. Results logged to C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql2-0.2.4/ext/mysql2/ge m_make.out 

La versión específica de la gem mysql2 que está tratando de instalar (0.2.4) no solo carece de binarios para Windows, sino que tiene problemas en Windows.

Instale la gem mysql2 sin indicar la versión:

 gem install mysql2 

Que instalará la última versión (0.2.6 en el momento de publicar esto) y también proporciona binarios para Windows que omiten el paso de comstackción.

Si aún desea forzar la comstackción (porque su versión de MySQL difiere de la utilizada para generar la gem binaria, deberá instalar DevKit de RubyInstaller desde el sitio web de RubyInstaller:

http://rubyinstaller.org/downloads

Y siga las instrucciones de instalación de DevKit desde nuestra wiki (que está enlazada desde la página de descarga)

Tendrá que proporcionar la ruta a ambos encabezados y bibliotecas durante el proceso de instalación de la gem, y ​​ajustar la ubicación de instalación de MySQL de las siguientes instrucciones:

 subst X: "C:\Program Files (x86)\MySQL\MySQL Server 5.1" gem install mysql2 --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt subst X: /D 

El comando anterior usa subst para evitar problemas con la ruta con espacios, lo cual debes evitar siempre .

Espero que esto ayude.

Después de buscar una forma de hacerlo funcionar, finalmente lo tengo instalado con lo siguiente en el símbolo del sistema:

 gem install mysql2 -v 0.2.6 

Con los siguientes resultados:

 Fetching: mysql2-0.2.6-x86-mingw32.gem (100%) Successfully installed mysql2-0.2.6-x86-minw32 1 gem installed Installing ri documentation for mysql2-0.2.6-x86-mingw32... Enclosing class/module 'mMysql2' for class Client not known Installing RDoc documentation for mysql2-0.2.6-x86-mingw32... Enclosing class/module 'mMysql2' for class Client not known 

Intentalo. Deberia de funcionar.

Si todavía no puede instalar la gem mysql2 en Windows7 o no está muy claro en los pasos a seguir, entonces lea esta publicación que lo ayudará en la instalación paso a paso – http://rorguide.blogspot.com/2011/ 03 / installation-mysql2-gem-on-ruby-192-and.html

Y para el error mysql_api.so ( C:/Ruby192/lib/ruby/gems/1.9.1/gems/mysql-2.8.1-x86-mingw32/lib/1.9/mysql_api.so ), copie el archivo “libmySQL.dll” de C:\Program Files\MySQL\MySQL Server 5.1\bin a C:\Ruby192\bin

La ruta de instalación puede variar, para más detalles, consulte esta publicación: http://rorguide.blogspot.com/2011/03/getting-error-specified-module-could.html .

Espero, esto te ayudará a resolver tus problemas.

Comience con RailsInstaller.

Esto supone que está ejecutando el servidor mysql localmente (desarrollo local) y su Ruby está comstackdo a 32 bits. (Ver ruby -v . X64 || i386.)

Descargue mysql-community-web-installer. En la esquina superior derecha, selecciona 32 bits . Simplemente necesitas el Servidor. El Workbench también es útil.

El comando gem necesita una ruta sin espacios, por lo tanto, use subst:

 subst X: "C:\Program Files (x86)\MySQL\MySQL Server 5.6" gem install mysql2 -v=0.3.13 --platform=ruby -- --with-mysql-dir=X: 

Necesitará libmysql.dll en la RUTA: lo más fácil es copiarlo al directorio bin de Ruby:

 copy "C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib\libmysql.dll" "C:\RailsInstaller\Ruby2.0.0\bin" 

NOTAS

¡No hagas esto desde PowerShell! (DevKit tiene problemas para cambiar la información de ruta en PowerShell).

Asegúrese de que todas las bibliotecas sean de 32 bits, ya que el ruby ​​de RailsInstaller, etc., está comstackdo en 32 bits y necesita vincularse a bibliotecas de 32 bits.

Si no quiere un servidor localmente, simplemente instale el Conector C y siga estas instrucciones con ese directorio y libmysql.dll. No mezcle y combine: asegúrese de que el .dll coincida con la versión contra la que compiló la gem.

De esto:

 checking for main() in -llibmysql... no 

parece que no ha instalado los controladores y aplicaciones MySQL. De ser así, ¿se les permitió instalar en sus ubicaciones predeterminadas? Como mínimo, querrá el software del cliente si el servidor se ejecuta en una máquina diferente.

  1. instalar 32 bit mysql connector / c obtenerlo aquí
  2. copie libmysql.dll del directorio donde instala el conector / c al% directorio de ruby ​​instalado% / bin /

luego vuelve a instalar la gem.

Probé la solución de @Mrk Fldig pero no funcionó … Entonces, ¿qué resolvió el problema?

  1. Descargado el último instalador de MySQL para Windows 7 32 bits
  2. Se instaló la gem con el siguiente comando: gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/Program Files/MySQL/MySQL Connector C 6.1 6.1.2/"'

Una de las dificultades a tener en cuenta es que cambié las barras diagonales inversas (\) a barras diagonales normales (/). He intentado el mismo procedimiento con barras diagonales inversas y no funcionó.

El instalador ya incluye los conectores C para MySQL en el directorio MySQL Connector C 6.1 6.1.2 . Por lo tanto, pasar solo el --with-mysql-dir sin los --with-mysql-lib o --with-mysql-include hace que la gem busque el mismo directorio para la lib e include directorios