Erro ao instalar o mysql2: falha ao criar extensão nativa gem

Eu estou tendo alguns problemas ao tentar instalar o mysql2 gem for Rails. Quando tento instalá-lo executando bundle install ou gem install mysql2 , gem install mysql2 o seguinte erro:

Erro ao instalar o mysql2: ERRO: falha ao criar a extensão nativa gem.

Como posso consertar isso e instalar com sucesso o mysql2 ?

No Ubuntu / Debian e outras distribuições usando o aptitude:

 sudo apt-get install libmysql-ruby libmysqlclient-dev 

O pacote libmysql-ruby foi eliminado e substituído pelo ruby-mysql . Aqui é onde eu encontrei a solução.

Se o comando acima não funcionar porque o libmysql-ruby não pode ser encontrado, o seguinte deve ser suficiente:

 sudo apt-get install libmysqlclient-dev 

No Red Hat / CentOS e outras distribuições usando o yum:

 sudo yum install mysql-devel 

No Mac OS X com Homebrew :

 brew install mysql 

Eu estou em um mac e uso homebrew para instalar programas de código aberto. Eu tive que instalar ferramentas mac Dev para instalar o homebrew, mas depois disso foi simples:

 brew install mysql 

para instalar o mysql. Eu não tive um problema gem gem desde então.

aqui é uma solução para os usuários do Windows , espero que ajude!

Usando o MySQL com Rails 3 no Windows

  • Instale o railsinstaller -> http://www.railsinstaller.org (eu o instalei no c: \ Rails)

  • Instale o MySQL (eu usei o MySQL 5.5) -> dev.mysql.com/downloads/installer/

— para instalação mySQL —

Se você ainda não tem esses dois arquivos instalados, você pode precisar deles para fazer seu MySQL funcionar

vcredist_x86.exe -> http://www.microsoft.com/download/en/details.aspx?id=5555 dotNetFx40_Full_x86_x64.exe -> http://www.microsoft.com/download/en/details.aspx?id = 17718

Use a máquina do desenvolvedor de instalação padrão

-MySQL Server Config
porta: 3306
nome do serviço do windows: MySQL55
mysql root pass: root (você pode mudar isso depois)
(username: root)
-MySQL Server Config

— para instalação mySQL —

— Instale o gem mysql2 —

Importante: Faça isso com o Git Bash Command Line (isso foi instalado com o railsinstaller) -> start / Git Bash

gem install mysql2 – ‘–with-mysql-lib = “c: \ Arquivos de Programas \ MySQL \ MySQL Server 5.5 \ lib” –with-mysql-include = “c: \ Arquivos de Programas \ MySQL \ MySQL Server 5.5 \ include”‘

Agora a gema deveria ter sido instalada corretamente

Por fim, copie o arquivo libmysql.dll de
C: \ Arquivos de Programas \ MySQL \ MySQL Server 5.5 \ lib
para
C: \ Rails \ Ruby1.9.2 \ bin

— Instale o gem mysql2 —

Agora você poderá usar seu aplicativo Rails com o MySQL, se não tiver certeza de como criar um aplicativo Rails 3 com MySQL, continue lendo …


— Obter um aplicativo Rails 3 indo com o MySQL —

Abra o prompt de comando (não o Git Bash) -> start / cmd
Navegue até a sua pasta (c: \ Sites)
Criar novo aplicativo de rails

 rails new world 

Exclua o arquivo c: \ Sites \ world \ public \ index.html
Edite o arquivo c: \ Sites \ world \ config \ routes.rb
adicione esta linha -> root: para => ‘cities # index’

Abra o prompt de comando (gerar exibições e controladores)

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

Edite o arquivo c: \ Sites \ mundo \ app \ models \ city.rb para ficar assim

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

Edite o arquivo c: \ Sites \ world \ config \ database.yml para ficar assim

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

adicionar ao gemfile

 gem 'mysql2' 

Abra o prompt de comando windows cmd, não o Git Bash (execute seu aplicativo!)
Navegue até a pasta do seu aplicativo (c: \ Sites \ world)

 rails s 

Abra seu navegador aqui -> http: // localhost: 3000

--- Obter um aplicativo Rails 3 indo com o MySQL ---

Eu tenho vários computadores, processador de 32 e 64 bits, eles rodam em Ubuntu Linux, Maverick (10.10) release.

Eu tive o mesmo problema, e para mim, o sudo apt-get install libmysql-ruby libmysqlclient-dev fez o trabalho !!!

Você já tentou usar

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

especificar a localização do diretório base, bem como o caminho para as bibliotecas MySQL que são necessárias para completar a instalação gem?

Fontes: MySQL Gem Install ERRO: Falha ao construir a extensão nativa do gem Fóruns do MySQL :: Ruby :: Ajuda necessária com a instalação da binding do MySQL para Ruby

Se você estiver usando o yum tente:

 sudo yum install mysql-devel 

Outra maneira de usuários MacOS

Se você usou “brew” para instalar o mysql:

 gem install mysql2 -v 'xxx' -- --with-mysql-config=/usr/local/Cellar/mysql/yyy/bin/mysql_config 

xxx = versão da gema do mysql2 que você deseja instalar
yyy = a versão do mysql que você instalou ls /usr/local/Cellar/mysql para encontrá-lo.

Se você ainda está tendo problemas …

Tente instalar

  sudo apt-get install ruby1.9.1-dev 

Eu tive esse problema com o meu windows 7. Este é aparentemente um problema de incompatibilidade ea solução é a seguinte: Baixe o arquivo mysql.dll a partir de um instalador mais antigo do InstantRails. O Link http://tinyurl.com/24ocp8u baixará apenas o arquivo mysql.dll (é o link para o repository svn do InstantRails). Em seguida, copie esse arquivo para sua pasta Ruby / bin. Agora você é bom para ir;)

Isso resolveu meu problema uma vez no Windows:

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

Eu também recebi esse erro. Resolvido instalando pacotes de desenvolvimento. Eu estou usando arco e foi:

 sudo pacman -S base-devel 

qual instalado:

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

mas acho que realmente precisava fazer e gcc. Saída de erro disse (na minha máquina, entre outros):

“Você precisa instalar as ferramentas de desenvolvimento primeiro.”

Então, foi uma decisão óbvia e ajudou.

Eu estava correndo para este erro no meu mac e descobri que precisava atualizar do mysql 32bit para o mysql de 64 bits para obter esse erro para ir embora. Eu estava executando o OSX 10.6 em um intel macbook pro com ruby ​​1.9.2 e rails3.0.0

Eu também precisava instalar o xcode para obter utilitários unix como “make” que são necessários para compilar a gem.

uma vez feito isto, eu consegui rodar gem install mysql e gem install mysql2 sem erro.

Você tem que instalar algumas dependencies

 sudo apt-get install libmysql-ruby libmysqlclient-dev 

No Debian Stretch o pacote que funcionou para mim era default-libmysqlclient-dev

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

Para windows user: Você configura o caminho lib e include do seu mysql, por exemplo, se você está usando o xampp você pode ter assim:

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

Solução só funciona no Mac OS X

Se você instalou o MySQL com o homebrew, o que funcionou para mim foi desinstalar o MySQL e instalar o MySQL Community Edition através do site MySQL ( https://www.mysql.com/ ).

Depois de instalado, basta digitar novamente o comando para gem install mysql2 ou, se necessário, sudo gem install mysql2 , se estiver obtendo problemas de permissão negada.

Eu tenho a jóia construída no Mac OS X 10.6.6 por 1) Garantir que o pacote de ferramentas do desenvolvedor está instalado 2) Download do pacote atual do MySQL (5.5.8 no meu caso) da fonte 3) Instalando a ferramenta cmake do cmake.org 4 ) Seguindo as instruções na seção 2.11 do INSTALL-SOURCE dos arquivos de distribuição mysql 5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include A gem foi construída com sucesso, mas existem dois erros na documentação que rdoc e ri reclamam. Mas agora, quando eu tento exigir ‘mysql2’ eu recebo um

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

Eu estava esperando que o erro que eu teria é que o libmysqlclient.16.dylib não pôde ser encontrado porque descobrimos isso em outro post (procure por install_name_tool).

Meu $ PATH tem / usr / local / mysql nele (é onde meus arquivos de origem e construídos estão localizados), então estou um pouco perplexo. Se alguém tiver algum pensamento, eu voltarei depois de algumas horas de sono.

Se ainda estiver recebendo o erro, siga os passos da instalação do gem mysql2 no Rails 3 on –

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

onde a maioria do usuário foi capaz de instalar gem mysql2.

Depois de obter os problemas do mysql-dev corrigidos, você pode precisar remover a instalação incorreta do mysql2. Observe atentamente as mensagens após a instalação do $ bundle. Você pode precisar

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

Isso limpará a instalação incorreta do mysql2 para que uma instalação final do $ bundle possa criar uma boa.

baixar a versão correta do mysqllib.dll e copiá-lo para o Ruby Bin realmente funciona para mim. Siga este link plases gem mysql2 compilado para a biblioteca cliente mysql errado

Tem o “Você tem que instalar ferramentas de desenvolvimento em primeiro lugar.” erro ao tentar instalar o gem mysql2 após a atualização para o Mac OS X Mountain Lion . Aparentemente, fazer essa atualização remove os compiladores da linha de comando.

Consertar:

  • Eu desinstalei minha versão muito antiga do Xcode (executei o script de desinstalação em / Developer / Library). Em seguida, excluiu o diretório / Developer.
  • Fui para a AppStore e baixei o Xcode.
  • Lançou o Xcode e entrou nas Preferências -> Downloads e instalou as ferramentas de linha de comando.

Você está recebendo este problema porque você não instalou o MySql. Antes de instalar gem mysql2. Instale o MySQL. Depois disso, a gem mysql2 será instalada.

Eu só queria adicionar essa resposta especificamente para usuários de Mac .

Meu servidor estava funcionando perfeitamente bem até que eu atualizei meu xcode. O tempo ao iniciar meu servidor rails o erro foi mostrado assim

 Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/user/.rvm/rubyes/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql- checking for rb_thread_blocking_region()... /Users/user/.rvm/rubyes/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) 

E houve sugestão para instalar gem mysql2 no final da mensagem de erro. Então, quando eu tentei instalá-lo, recebi o erro acima mencionado nesta pergunta. O erro que recebi é o seguinte

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

Então, como sugerido neste post eu tentei ‘brew install mysql’ e que saiu dizendo que a versão do mysql assim e assim já instalado. Mas houve aviso antes de dizer

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

Então eu tentei este sudo xcodebuild -license e digite ‘concordar’ no final. Você tem que ser root para concordar com a licença.

Depois disso, eu tentei novamente a instalação do pacote e, em seguida, tudo está funcionando bem como normal. [Mesmo devido a esta atualização do xcode, eu também tive problemas com a minha torre.]

Para aqueles que usam o Windows 7 e o MySQL de 64 bits

Se você quiser usar o MySQL de 64 bits, siga as instruções aqui (também aqui ).

Há também um conector de 64 bits personalizado que funciona sem problemas.

libmysql-ruby foi eliminado e substituído. Novo comando:

  sudo apt-get install ruby-mysql libmysqlclient-dev