Pergunta

Estou tendo alguns problemas ao tentar instalar mysql2 Gem para trilhos. Quando tento instalá -lo executando bundle install ou gem install mysql2 Isso me dá o seguinte erro:

Erro de instalação do MySQL2: Erro: Falha ao criar a extensão nativa do GEM.

Como posso consertar isso e instalar com sucesso mysql2?

Foi útil?

Solução

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

sudo apt-get install libmysql-ruby libmysqlclient-dev

Pacote libmysql-ruby foi eliminado e substituído por ruby-mysql. este é onde eu encontrei a solução.

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

sudo apt-get install libmysqlclient-dev

Em Red Hat/Centos e outras distribuições usando Yum:

sudo yum install mysql-devel

No Mac OS X com Homebrew:

brew install mysql

Outras dicas

Estou em um mac e uso Homebrew Para instalar programas de código aberto. Eu tive que instalar as 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 no MySQL Gem desde então.

Aqui está uma solução para o Usuários do Windows, espero que ajude!

Usando o MySQL com Rails 3 no Windows

  • Instale o Railsinstaller -> www.railsinstaller.org (Eu o instalei para 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 instalado, você pode precisar deles para fazer seu mysql

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

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

-MySQL Server Config-
Porta: 3306
Nome do serviço do Windows: MySQL55
Raiz Mysql: raiz (você pode alterar isso mais tarde)
(nome de usuário: root)
-MySQL Server Config-

--- para instalação MySQL ---


--- Instale o MySQL2 Gem ---

Importante: Faça isso com a linha de comando Git Bash(Isso foi instalado com Railsinstaller) -> BASH START/GIT

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 incluir"'

Agora a jóia deveria ter instalado 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 MySQL2 Gem ---


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


--- Obtenha um aplicativo Rails 3 indo com o mysql ---

Prompt de comando aberto (não Git Bash) -> Iniciar/CMD
Navegue até a sua pasta (c: sites)
Crie um novo aplicativo Rails

rails new world

Exclua o arquivo c: sites mundial public index.html
Edite o arquivo C: sites World config rotes.rb
Adicione esta linha -> raiz: para => 'Cidades#Índice'

Prompt de comando aberto (gerar visualizações e controladores)

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



Edite o arquivo C: sites World App Models City.rb para ficar assim

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

Edite o arquivo c: sites mundial config database.yml para se parecer com isso

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

Adicione ao GemFile

gem 'mysql2'

Abrir prompt de comando Windows CMD, não Git Bash (execute seu aplicativo!)
Navegue até a pasta do aplicativo (C: Sites World)

rails s

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

--- Obtenha um aplicativo Rails 3 indo com o mysql ---

Eu tenho vários computadores, processador de 32 e 64 bits, eles são executados no Ubuntu Linux, Maverick (10.10).

Eu tive o mesmo problema, e para mim, osudo apt-get install libmysql-ruby libmysqlclient-devfez o trabalho !!!

Outra maneira de usuários do MacOS

Se você usou "Brew" para instalar o MySQL:

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

xxx = versão da gema mysql2 que você deseja instalar
aaa = a versão do mysql que você instalou ls /usr/local/Cellar/mysql Para encontrar isso.

Você já tentou usar

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

Para especificar a localização do diretório TheBase, bem como o caminho para as bibliotecas MySQL necessárias para concluir a instalação do GEM?

Fontes:Erro de instalação do MySQL GEM: Falha ao criar uma extensão nativa do GEM Fóruns do MySQL :: Ruby :: Ajuda necessária para a instalação da ligação MySQL para Ruby

Se você estiver usando o yum, tente:

sudo yum install mysql-devel

Isso resolveu meu problema uma vez no 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

Se você ainda está tendo problemas….

Tente instalar

   sudo apt-get install ruby1.9.1-dev

Eu tive esse problema no Windows 7. Este é aparentemente um problema de incompatibilidade e a solução é a seguinte:

Faça o download do libmySQL.dll Arquivo de um instalador de Instantrails mais antigo. Está disponível no Instantrails Github Repo.

Em seguida, copie esse arquivo na sua pasta Ruby/Bin.

Agora, você está pronto para ir;)

Por 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

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

sudo pacman -S base-devel

que instalou:

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

Mas acho que realmente precisava de fazer e GCC. A 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.

Você tem que instalar algumas dependências

sudo apt-get install libmysql-ruby libmysqlclient-dev

No Debian Stretch, o pacote que funcionou para mim foi padrão-libmysqlclient-dev

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

Eu estava enfrentando esse erro no meu Mac e descobri que precisava atualizar do MySQL 32bit para o MySQL 64 bits para obter esse erro para desaparecer. 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 do UNIX como "Make" necessários para compilar a gema.

Depois que isso foi feito, pude executar o GEM Install MySQL e GEM Instale MySQL2 sem erro.

No meu caso, isso ajudou:

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

Então:

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

Resultado:

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

Veja este post (Aviso: idioma japonês dentro).

Para o usuário do Windows: você define a lib e inclui caminho do seu MySQL, por exemplo, se você estiver usando o xampp, você pode ter assim:

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

A solução funciona apenas 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 no site do MySQL (https://www.mysql.com/).

Após a instalação, basta entrar novamente no comando para gem install mysql2 ou se necessário, sudo gem install mysql2, se você estiver obtendo permissão negado problemas.

Eu criei a jóia construída no Mac OS X 10.6.6 por 1) Garantir que o pacote de ferramentas do desenvolvedor esteja instalado 2) Faça o download do pacote MySQL atual (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 da fonte de instalação dos arquivos de distribuição MySQL 5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/includeA jóia foi construída com sucesso, mas há dois erros na documentação que o RDOC e o RI reclamam. Mas agora, quando tento exigir 'mysql2', eu recebo um

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

Eu esperava que o erro que receberia era que o libmysqlclient.16.dylib não pudesse ser encontrado porque descobrimos isso em outra postagem (pesquise install_name_tool).

Meu $ PATH possui/usr/local/mysql (é onde estão localizadas minhas fontes e arquivos construídos), por isso estou um pouco perplexo. Se alguém pensa, voltarei a voltar depois de algumas horas de sono.

Se ainda estiver obtendo erro, siga as etapas da instalação do MySQL2 Gem no Rails 3 em -

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

onde a maioria do usuário conseguiu instalar o MySQL2 Gem.

Depois de obter os problemas do MySQL-DEV, pode ser necessário remover a instalação ruim 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 ruim do MySQL2 para que uma instalação final de $ pacote possa criar uma boa.

Faça o download da versão certa do mysqllib.dll e copie -a para Ruby Bin realmente funciona para mim. Siga este link Plases MySQL2 Gem compilado para biblioteca de clientes mysql errada

Recebi as "você precisa instalar as ferramentas de desenvolvimento primeiro". Erro ao tentar instalar a jóia mysql2 Depois de atualizar para o Mac OS X Mountain Lion. Aparentemente, fazer essa atualização remove os compiladores da linha de comando.

Consertar:

  • Desinstalei minha versão muito antiga do Xcode (execute o script desinstale em /desenvolvedor /biblioteca). Em seguida, excluiu o diretório /desenvolvedor.
  • Fui para a AppStore e baixou o Xcode.
  • Iniciou o Xcode e entrou nas preferências -> Downloads e instalou as ferramentas de linha de comando.

Você está tendo esse problema porque não instalou o MySQL. Antes de instalar o MySQL2 Gem. Instale o MySQL. Depois disso, o MySQL2 Gem instalará.

Eu só queria adicionar esta resposta especificamente para Usuários de Mac.

Meu servidor estava funcionando perfeitamente bem até eu atualizar meu xcode. Enquanto inicia meu servidor Rails, o erro foi mostrado assim

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)

E havia sugestão para instalar o MySQL2 Gem no final da mensagem de erro. Então, quando tentei instalá -lo, recebi o erro como mencionado acima desta pergunta. O erro que recebi é o seguinte

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

Assim, como sugerido neste post, tentei 'Brew Install MySQL' e isso desistiu dizendo que a versão MySQL assim e já instalada. 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 isso sudo xcodebuild -license e tipo 'concordo' no final. Você precisa ser raiz para concordar com a licença.

Depois disso, tentei novamente a instalação do pacote e tudo está funcionando bem normalmente. [Mesmo devido a essa atualização do Xcode, eu também tive problemas com minha torre.

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

 sudo apt-get install ruby-mysql libmysqlclient-dev

Para aqueles que usam o Windows 7 e 64 bits MySQL

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

Desculpe por isso deve ser um comentário sobre Resposta do SpacEmonkey Mas minha não tenho reputação suficiente para fazê -lo.

Quero acrescentar que, se você estiver usando o MariaDB em vez do MySQL no CentOS 7, você só precisa instalar o pacote mariadb compartilhado para corrigir o erro.

yum install MariaDB-shared -y
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top