Pregunta

Tengo algunos problemas al intentar instalar. mysql2 joya para rieles.Cuando intento instalarlo ejecutando bundle install o gem install mysql2 me da el siguiente error:

Error al instalar mysql2:ERROR:No se pudo crear la extensión nativa de la gema.

¿Cómo puedo solucionar este problema e instalarlo correctamente? mysql2?

¿Fue útil?

Solución

En Ubuntu / Debian y otras distribuciones por medio de aptitud:

sudo apt-get install libmysql-ruby libmysqlclient-dev

Paquete libmysql-ruby ha sido eliminado y reemplazado por ruby-mysql. Este es donde encontré la solución.

Si el comando anterior no funciona porque libmysql-ruby no se puede encontrar, lo siguiente debería ser suficiente:

sudo apt-get install libmysqlclient-dev

En Red Hat / CentOS y otras distribuciones usando yum:

sudo yum install mysql-devel

En Mac OS X con Homebrew :

brew install mysql

Otros consejos

Estoy en un Mac y el uso homebrew para instalar programas de código abierto. Yo tenía que instalar las herramientas de Mac Dev con el fin de instalar homebrew, pero después de que se trataba de un simple:

brew install mysql

para instalar MySQL. No he tenido un problema MySQL joya desde entonces.

que aquí hay una solución para los Ventanas de usuarios , espero que ayude!

Uso de MySQL con Rails 3 en Windows

  • Instalar railsinstaller -> www.railsinstaller.org (He instalado en c: \ rieles)

  • Instalar MySQL (he usado MySQL 5.5) -> dev.mysql.com/downloads/installer /

  

--- --- para la instalación de MySQL   
Si ya no tiene estos dos archivos instalado es posible que los necesita para obtener su MySQL va
  vcredist_x86.exe -> http://www.microsoft.com/download/ es / details.aspx? id = 5555   dotNetFx40_Full_x86_x64.exe -> http://www.microsoft.com/download/ es / details.aspx? id = 17718   
  Uso de instalación por defecto   Desarrollador máquina

     

-MySQL de configuración del servidor -
  Puerto: 3306
  Nombre de servicio de Windows: MySQL55
  MySQL pasada de raíz: raíz (que puede cambiar esto más adelante)
  (Nombre de usuario: root)
   -MySQL de configuración del servidor -

     

--- --- para la instalación de MySQL


  

--- Instalar el mysql2 Gem ---
  Importante: Haga esto con Git Bash línea de comandos (esto se instaló con railsinstaller) -> start / Git Bash
   joya instalo mysql2 - '--with-mysql-lib = "c: \ Archivos de programa \ MySQL \ MySQL Server 5.5 \ lib" --with-mysql-include = "c: \ Archivos de programa \ MySQL \ MySQL Server 5.5 \ include " '   
  Ahora la gema debe haberse instalado correctamente   
  Por último copiar el archivo libmysql.dll de
  C: \ Archivos de programa \ MySQL \ MySQL Server 5.5 \ lib
  a
  C: \ rails \ Ruby1.9.2 \ bin
   --- Instalar el mysql2 Gem ---


Ahora va a ser capaz de utilizar su aplicación Rails con MySQL, si no está seguro de cómo crear una aplicación Rails 3 con MySQL sigue leyendo ...


--- Obtener una Carriles 3 aplicaciones que van con MySQL ---
Abierto de comandos (no Git Bash) -> start / cmd
Navegar hasta la carpeta (C: \ Sites)
Crear nuevos carriles de aplicación

rails new world

Borrar el archivo c: \ Sites \ mundo \ public \ index.html
Editar el archivo c: \ Sites \ mundo \ config \ routes.rb
añadir esta línea -> root: 'índice de ciudades #' a =>

Abra Símbolo del sistema (generar vistas y controladores)

rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer


Editar el archivo c: \ sites \ mundo \ app \ models \ city.rb al aspecto que presentan

class City < ActiveRecord::Base
 set_table_name "city"
end

Editar el archivo c: \ sites \ mundo \ config \ database.yml a tener este aspecto

development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock

añadir a Gemfile

gem 'mysql2'

Abrir símbolo del sistema ventanas cmd no Git Bash (ejecutar su aplicación!)
Navegar hasta la carpeta de aplicación (c: \ Sites \ mundo)

rails s

Abra su navegador aquí -> http: // localhost: 3000

--- Obtener una Carriles 3 aplicaciones que van con MySQL ---

Tengo varias computadoras, con procesador de 32 y 64 bits, funcionan con Ubuntu Linux, versión Maverick (10.10).

Tuve el mismo problema y para mí, elsudo apt-get install libmysql-ruby libmysqlclient-devhizo el trabajo!!!

Otra forma para MacOS usuarios

Si ha utilizado "cerveza" para instalar MySQL:

gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config

x.x.x = versión de la gema mysql2 desea instalar
y.y.y = la versión de MySQL ha instalado ls /usr/local/Cellar/mysql para encontrarlo.

¿Ha intentado utilizar

 gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib 

para especificar la ubicación del directorio de TheBase, así como la ruta de acceso a las bibliotecas de MySQL que son necesarios para completar la instalación joya?

Fuentes: MySQL Instalar Gem ERROR: No se pudo construir joya extensión nativa MySQL Forums :: Rubí :: Ayuda necesaria con la instalación de MySQL vinculante para Ruby

Si está utilizando yum tratar:

sudo yum install mysql-devel

Esto resolvió mi problema de una vez en Windows:

subst X: "C:\Program files\MySQL\MySQL Server 5.5" 
gem install mysql2 -v 0.x.x --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt 
subst X: /D

Si todavía tiene problemas ....

Trate de instalar

   sudo apt-get install ruby1.9.1-dev

he tenido este problema en Windows 7. Esto es al parecer un problema de incompatibilidad y la solución es la siguiente:

Descargar el archivo libmySQL.dll de un instalador InstantRails más. Está disponible desde el InstantRails GitHub repo .

A continuación, copie el archivo en la carpeta de Rubí / bin.

Ahora, usted es bueno ir;)

En MacOS Mojave :

gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include

Tengo este error también. Resuelto mediante la instalación de paquetes de desarrollo. Estoy usando arco y fue:

sudo pacman -S base-devel

, que se instala:

m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config

pero creo que la marca y el gcc realmente se necesita. salida de error dice (en mi máquina, entre otros):

"Usted tiene que instalar las herramientas de desarrollo en primer lugar."

Así que fue una decisión obvia y ayudó.

Usted tiene que instalar algunas dependencias

sudo apt-get install libmysql-ruby libmysqlclient-dev

En Debian Estirar el paquete que trabajó para mí era default-libmysqlclient-dev

sudo apt-get update && apt-get install -y default-libmysqlclient-dev

Yo estaba corriendo en este error en mi mac y encontré que tenía que actualizar de MySQL MySQL 32 bits a 64 bits para conseguir este error que se vaya. Yo estaba corriendo OSX 10.6 en un procesador Intel MacBook Pro con Ruby 1.9.2 y rails3.0.0

También es necesario instalar Xcode con el fin de obtener utilidades de Unix como "marca" que se requieren para compilar la gema.

Una vez hecho esto yo era capaz de correr joya instalar MySQL y joya instalan mysql2 sin error.

En mi caso esto ayudó:

$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CPPFLAGS="-I/usr/local/opt/openssl/include"

A continuación:

gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/' -- --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib

Resultados:

Building native extensions with: '--with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib'
This could take a while...
Successfully installed mysql2-0.5.2
Parsing documentation for mysql2-0.5.2
Installing ri documentation for mysql2-0.5.2
Done installing documentation for mysql2 after 0 seconds
1 gem installed

Ver este post (ADVERTENCIA: en el interior del idioma japonés).

Para los usuarios de Windows: Se establece el lib y ruta de inclusión de su mysql, por ejemplo, si usted está usando xampp que puede tener este aspecto:

gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'

solución sólo funciona en Mac OS X

Si ha instalado MySQL con homebrew, lo que funcionó para mí fue desinstalar para MySQL, y la instalación de MySQL Community Edition a través de la página web de MySQL ( https://www.mysql.com/ ).

Después de instalado, simplemente vuelva a introducir el comando para gem install mysql2 o si es necesario, sudo gem install mysql2, si obtiene permiso denegado problemas.

Me dio la joya construida en Mac OS X 10.6.6 por 1) Asegurar el paquete de herramientas de desarrollador está instalado 2) Obtención del paquete MySQL actual (5.5.8 en mi caso) de la Fuente 3) Instalación de la herramienta cmake de cmake.org 4) Siguiendo las instrucciones de la sección 2.11 de INSTALL- FUENTE de los archivos de distribución de MySQL 5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include La gema construido con éxito, pero hay dos errores en la documentación que rdoc y Ri se quejan. Pero ahora cuando trato de requerir 'mysql2' consigo un

LoadError: no such file to load -- mysql2/mysql2

Yo estaba esperando el error que iba a conseguir era que el libmysqlclient.16.dylib no se pudo encontrar, porque nos dimos cuenta de que en otro post (búsqueda de install_name_tool).

Mi $ PATH tiene / usr / local / mysql local en ella (que es donde se encuentran los archivos de mi fuente y construidos), así que estoy un poco perplejo. Si alguien tiene alguna idea, voy a comprobar de nuevo después de unas horas de sueño.

Si sigue recibiendo el error y siga los pasos de la instalación mysql2 joya en Rails 3 en -

http: // rorguide. blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html

donde la mayoría de los usuarios eran capaces de instalar mysql2 joya.

Después de obtener las cuestiones mysql-dev corregidas, puede que tenga que quitar el mal mysql2 instalar. Mire cuidadosamente los mensajes después de $ bundle install. Es posible que necesite

rm -rf vendor/cache/
rm -rf ./Zentest

Esto borrará a cabo la instalación mal mysql2 de modo que un final de $ bundle install puede crear una buena.

descargar la versión correcta de mysqllib.dll luego copiarlo a Ruby bin realmente funciona para mí. Siga este enlace plases mysql2 joya compilado para MySQL mal biblioteca cliente

dieron la "Usted tiene que instalar las herramientas de desarrollo en primer lugar." de error al intentar instalar la gema mysql2 después de la actualización a Mac OS X Mountain Lion . Al parecer haciendo esta actualización elimina los compiladores de línea de comandos.

Para fijar:

  • I desinstalado mi versión muy antigua de Xcode (corrió en el script de desinstalación / desarrollador / Biblioteca). Luego se elimina el directorio / desarrollador.
  • Fuimos al AppStore y descargar Xcode.
  • Lanzado Xcode y entró en las Preferencias -.> Descargas, e instalado las herramientas de línea de comandos

Usted está recibiendo este problema porque no has instalar MySQL. Antes de instalar la gema mysql2. Instalar MySQL. Después de que la gema mysql2 instalará.

Sólo quería añadir esta respuesta específicamente para Mac Usuarios .

Mi servidor estaba funcionando perfectamente bien hasta que he actualizado mi Xcode. El tiempo de comenzar mi servidor rieles el error se mostró como esto

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql-
    checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/ruby-1.9.3-  
    p448/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an    
    executable file. (RuntimeError)

Y no había sugerencia de instalar mysql2 joya al final del mensaje de error. Así que cuando he intentado instalarlo Tengo el error como se mencionó anteriormente en esta pregunta. El error que tengo es el siguiente

ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

Así como se sugiere en este post he intentado 'brebaje instalar MySQL' y que abandonó diciendo que la versión de MySQL esto y lo otro ya instalado. Pero no hubo advertencia antes de que diciendo

Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license

A continuación, he intentado esto sudo xcodebuild -license y tipo 'de acuerdo' al final. Tiene que ser root para estar de acuerdo con la licencia.

Después de esto, lo intentó de nuevo paquete de instalación y luego todo está funcionando bien como de costumbre. [Incluso debido a este updation Xcode, tuve un problema con mi torre también.]

libmysql-ruby ha sido eliminado y reemplazado. Nuevo comando:

 sudo apt-get install ruby-mysql libmysqlclient-dev

Para aquellos que utilizan Windows 7 y 64 bits MySQL

Si desea utilizar MySQL de 64 bits, debe seguir las instrucciones aquí (también aquí ).

Lo siento por esto debería ser un comentario sobre de spacemonkey respuesta pero mi no tienen la reputación suficiente para hacerlo.

¿Quiere añadir que si estás usando MariaDB en lugar de MySQL en CentOS 7 sólo tiene que instalar el paquete compartido-MariaDB para corregir el error.

yum install MariaDB-shared -y
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top