Error al instalar mysql2:No se pudo crear la extensión nativa de la gema
-
25-09-2019 - |
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
?
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-dev
hizo 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
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