Estou apenas começando com Ruby (e rails). Fiz a configuração de acordo com http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:ruby gems, usando rvm
. Tenho tudo funcionando bem com sqlite.
Agora eu gostaria de tentar converter coisas para MySQL, já que é com isso que faço a maior parte do meu desenvolvimento. Em meu Gemfile, substituí sqlite por mysql2:
group :development, :test do
# gem 'sqlite3', '1.3.5'
gem 'mysql2'
gem 'rspec-rails', '2.9.0'
end
Mas quando tento criar o banco de dados para trilhos no MySQL, obtenho:
$ rake db:create --trace
rake aborted!
dlopen(/Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib
Referenced from: /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
Reason: image not found - /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
Já vi outras postagens recomendando a reinstalação do MySQL via homebrew (o meu foi instalado por meio de um DMG para download), mas prefiro não fazer isso porque já tenho vários outros bancos de dados para outros projetos que não sejam ruby.
Na verdade, tenho o arquivo que Rails está procurando; está instalado em /usr/local/mysql/lib/libmysqlclient.18.dylib
. Qual é a melhor maneira de dizer ao Rails como localizá-lo?
fonte
Respostas:
A solução é muito fácil; Adicione o caminho da biblioteca em seu arquivo ~ / .bash_profile ou ~ / .profile:
Se ainda não estiver funcionando (isso funciona para mim):
Existem muitos blogs com
install_name_tool
, o que não funcionará para mim porque estou no OSX Lion:fonte
.bash_profile
realmente não se aplica.usr/lib
mais fazer um link simbólico, mas um link simbólico parausr/local/lib
funcionará:sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Em El Capitan eu tenho
ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted
Em El Capitan,
/usr/lib/
agora tem um sinalizador restrito e não pode ser escrito sem desativar a segurança, então apenas coloco o link em seu/usr/local/lib
lugar.O servidor Rails está funcionando bem novamente.
fonte
Embora o título desta pergunta descreva precisamente o problema que encontrei, as circunstâncias são diferentes daquelas descritas nas respostas anteriores, assim como a solução.
No meu caso (El Capitan, mysql instalado via homebrew), um
brew update && brew upgrade
fez com que o pacote mysql fosse atualizado para 5.7.10 (de 5.6.x).A atualização teve
libmysqlclient.18.dylib
que ser substituída porlibmysqlclient.20.dylib
, mas amysql2
gema ainda dependia do anterior.Para resolver o problema, fiz:
gem uninstall mysql2 && gem install mysql2
Observe que problemas semelhantes podem ocorrer com diferentes bibliotecas gerenciadas por homebrew ( veja minha própria resposta para isso, por exemplo )
fonte
pip uninstall mysqlclient
epip install mysqlclient
também funcionou.Isso funcionou para mim. Instalei o MySQL a partir de um arquivo dmg.
fonte
Funcionou para mim. Todos os semelhantes não.
fonte
Corri para este problema após uma remoção completa e, em seguida, uma nova instalação do MySQL. Especificamente:
Eu nem tinha tocado no meu aplicativo Rails.
Reinstalar a
mysql2
gema resolveu esse problema.[MySQL 5.7.10, Rails 4.0.0, Ruby 2.0.0, Mac OS X Yosemite 10.10]
fonte
Se você estiver usando o MySQL instalado do HomeBrew no El Capitan, deverá vinculá-lo da seguinte maneira:
fonte
Para MySql 5.6 instalado a partir de DMG no Mavericks
fonte
Eu remendo confirmação de Abhishek faz trabalho.
funciona para Yosemite também.
nota: em vez de vincular a uma versão particular do mysql, use o fato mysql já construído link simbólico:
esta solução funciona para Xcode e C API.
fonte
Para quem está usando cerveja. Apenas vincule sua versão do mysql com a opção "--force".
fonte
brew link [email protected] --force
. Funcionou perfeitamente.Para ter certeza de qual link simbólico é necessário (depende da versão do mysql e da versão do sistema operacional):
e entao :
fonte
Isso funciona para mim:
fonte
ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Estou usando Rails REE (2.3.4) para um sistema legado que temos. Depois de atualizar para o El Capitan, a execução de script / console gerou um erro e meu aplicativo não iniciou mais (usando o pow):
A partir deste mesmo thread, acima, eu determinei que precisava emitir este comando no terminal:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Este comando produziu um erro: "ln: /usr/lib/libmysqlclient.18.dylib: Operação não permitida". Nunca vi esse erro antes.
Depois de pesquisar um pouco, encontrei este artigo: http://www.macworld.com/article/2986118/security/how-to-modify-system-integrity-protection-in-el-capitan.html e segui o instruções para desligar o SIP (a nova Proteção de Integridade do Sistema da El Capitan). Depois de desligar o SIP e reiniciar, o comando ln funcionou bem. Então desliguei o SIP. Agora está tudo bem. Meu aplicativo é executado novamente usando o pow e nenhum erro ao executar o script / console. Espero que isso ajude você.
fonte
No Mac Sierra, se estiver usando o Homebrew, faça:
fonte
e
trabalhou para mim.
fonte
Isso funcionou para mim. Tudo que eu tive que fazer é desinstalar o gem mysql2 e instalá-lo novamente usando os comandos abaixo
fonte
Estou usando o Mac OS e fiquei preso com esse bug mesmo depois de desinstalar / remover todos os mysql e MAMP. Anteriormente, instalei
brew install mysql
e também useiMAMP
. Addling softlink não funcionou para mim.Ele só foi resolvido removendo todos os mysql existentes. e depois instale o mysql por meio do MySQL a partir daqui .
fonte
use isso em sua linha de comando:
tentado em poucos computadores com maverick sempre funciona
fonte
Se você estiver usando o Bitnami RubyStack e se deparou com um problema semelhante. Tente este
fonte
Meu problema com o carregamento desse arquivo de pacote era um link simbólico ruim. Portanto, verifique o link e substitua-o por um novo, se necessário. Tudo se encaixou naquele ponto. Não tenho certeza de como isso aconteceu, mas aconteceu. Primeira vez que um erro de sintaxe aconteceu assim.
fonte
Eu estava trabalhando com o comando rails g model e recebi este erro:
Eu tentei isso e funcionou para mim. Eu estava usando o Mavericks 10.9.5
Obrigado!
Agora estou usando o Yosemite 10.10.5 e recebo o mesmo erro, então acabei de executar este comando no terminal e ele foi corrigido com sucesso.
você também pode tentar:
Ambos funcionam bem para mim. Espero que possa ser útil!
fonte
Eu tenho esse problema "Biblioteca não carregada: libmysqlclient.18.dylib" ao importar MySQLdb do MySQL para python3 :
A solução funciona para mim: Mac OS X 10.11.1 Python3.5
fonte
A única coisa que funcionou para mim foi:
Substitua os caminhos do mysql e gems para caber no seu sistema.
fonte
Depois de muito pesquisar e tentar tudo acima ... a única coisa que resolveu meu problema foi este comando:
Estou usando um macbook pro, OSX 10 El Capitan. Darwin xxxx-MacBook-Pro.local 15.6.0 Darwin Kernel Versão 15.6.0: quinta-feira, 23 de junho, 18:25:34 PDT 2016; XXX: xnu-3248.60.10 ~ 1 / RELEASE_X86_64 x86_64 Perl: v5.18.2 Mysql: 5.6.19
fonte
Obrigado. Uma atualização do Homebrew fez com que meus aplicativos Rails tivessem problemas no meu Mac. Eu reinstalei o MySQL (5.7) da fonte, então tive que fazer isso
com base no que li acima e no meu Gemfile
e em database.yml
fonte
Já existem muitas respostas para essa pergunta, especialmente esta https://stackoverflow.com/a/10847618/5515861 . Eu só quero adicionar algumas notas. Se vocês usam Mac, não sei como instalam o MySQL, mas a primeira coisa a investigar é onde está localizada a instalação do MySQL. Para mim, o MySQL é instalado usando
brew
for version5.7
e o local é/usr/local/opt/[email protected]/
, então adicione o seguinte ao meu~/.zshrc
.Espero que você corrija seus problemas 😁
fonte