Eu tenho lutado com isso há algum tempo.
Instalei o Rails 3, gem, mysql na minha máquina Snow Leopard. Tudo estava indo bem até eu criar meu primeiro projeto e tentar executar
rails server
Ao executar isso, recebo:
jontybrook$ rails server
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.16.dylib (LoadError)
Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
from /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2.rb:7
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler.rb:112:in `require'
from /Users/jontybrook/Dropbox/CODING/simple_cms/config/application.rb:7
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28:in `require'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27
from script/rails:6:in `require'
from script/rails:6
jontybrook$
Tanto quanto eu posso dizer, o problema está na gema do mysql2. O MySQL parece estar funcionando bem e meu Gemfile faz referência ao mysql2, meu arquivo database.yml também parece ok.
O erro menciona
Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
E ainda
jontybrook$ cd /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2
jontybrook$ ls
client.rb em.rb error.rb mysql2.bundle result.rb
MySQL2.bundle está aí !?
Se eu usar a antiga jóia do mysql, o WEBrick inicializa bem. Mas isso não é o ideal, é?
Eu tentei tudo o que o google pode me dar! Qualquer ajuda muito apreciada.
fonte
/usr/lib
, esse link será resolvido para o local onde está realmente instalada. No OS X, geralmente está abaixo/usr/local/mysql/lib
, e é aí que esse comando se vincula. Se sua lib estiver instalada em um local diferente, você precisará ajustar este comando. Digitelocate libmysqlclient.18.dylib
e substitua o resultado pelo primeiro argumento depois-s
.WARNING: The locate database (/var/db/locate.database) does not exist. To create the database, run the following command: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist Please be aware that the database can take some time to generate; once the database has been created, this message will no longer appear.
que está errado?sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
). Isso iniciará o processo de indexação do disco rígido, o que fará com que olocate
comando funcione no futuro. Na maioria dos casos, porém, acho que você não precisará fazer isso e pode usar o comando fornecido pelo luvlss como está.Eu resolvi isso, eventualmente!
Reinstalei o Ruby e o Rails no RVM. Estou usando o Ruby versão 1.9.2-p136.
Após a reinstalação no rvm, esse erro ainda estava presente.
No final, o comando mágico que o resolveu foi:
Espero que isso ajude alguém!
fonte
mysql2-0.2.6/lib/mysql2/mysql2.bundle
onde suas gemas estão instaladas.sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.10/lib/mysql2/mysql2.bundle
Essa correção funcionou muito bem para mim:
Adicione o seguinte ao seu ~ / .profile
http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/
fonte
Para mim, isso foi apenas porque eu atualizei o mysql, mas não atualizei o gem do mysql2 - uma reinstalação do gem o corrigirá ...
gem pristine mysql2
fonte
Eu tenho o mesmo problema. Parece que não foi possível encontrar a biblioteca libmysqlclient. Uma correção temporária que funcionou para mim é a seguinte:
Não tenho certeza de onde a configuração está especificando o caminho de carregamento ou o que está definido, mas minha instalação do mysql não parecia estar nela. Vou postar novamente se encontrar uma solução mais permanente.
Editar: Na verdade, essa correção parece abordar com mais precisão o problema.
fonte
Adicione o seguinte ao seu
~/.bash_profile
:Isso funcionou para mim
fonte
Na atualização do OSX El Capitan, quando você faz isso:
lança um erro como
Portanto, para evitar isso, o que você pode fazer é primeiro localizar
libmysqlclient.18.dylib
usando o comandoNo meu caso, ele retornou
/usr/local/mysql-5.5.24-osx10.5-x86_64/lib/libmysqlclient.18.dylib
Então, em vez de
usr/lib/
criarmos o link simbólico para ousr/local/lib/
seguinte:Mais detalhes: https://forums.developer.apple.com/thread/7935
fonte
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
/usr/local/lib
pastaas seguintes linhas funcionam para mim. Estou usando o mac 10.7.2.
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
fonte
Acabei de encontrar este problema. Tudo o que eu precisava fazer era desinstalar o mysql2 gem e reinstalá-lo. Espero que isso funcione para outras pessoas
fonte
All versions
no prompt. Em seguida, executei o brew upgrade mysql e depois instale o mysql2.É assim que funcionou para mim:
Eu executei o comando abaixo
Executei sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~ / .rvm / gems / ruby-1.9.2-p180 / gems / mysql2-0.2.7 /lib/mysql2/mysql2.bundle
Meus ambientes:
$ rails -v Rails 3.0.6
$ mysql --version
mysql Ver 14.14 Distrib 5.5.11, para osx10.6 (i386) usando a linha de leitura 5.1
$ ruby -v
ruby 1.9.2p180 (revisão de 18/02/2011 30909) [x86_64-darwin10.7.0]
Espero que isso ajude alguém.
fonte
Obrigado, Ogapo! A exportação desse alias funcionou para mim e segui o link; no meu caso, o mysql2.bundle estava em /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, portanto Ajustei o install_name_tool para modificar esse pacote em vez de um no ~ / .rvm e fiz com que funcionasse da maneira que deveria ser feita.
Então agora:
fonte
oi funcionou para mim a partir do link recomendado de Fredy Andersen
só tive que mudar para minha versão do mysql, no comando, obrigado
fonte
Resolvi esse problema excluindo meu gemset para o meu projeto atual e recriando-o e executando novamente a instalação do pacote. Eu acho que causou isso instalando uma versão mais recente do mysql.
fonte
Eu tive esse problema ao trabalhar com o Django, uso
brew
para instalar muitos dos meus programas de código aberto e precisava fazer o seguinte, pois costumavabrew
instalarmysql
:Certifique-se de substituir por sua versão das bibliotecas!
fonte
bundle install mysql --force
me ajudou. Reinstalou dependências que foram removidas como resultadobrew uninstall mysql
.fonte
Unknown switches '--force'
Jonty, também estou lutando com isso.
Eu acho que há uma pista aqui:
Observe que o caminho para o dylib é bastante curto?
Estou tentando descobrir onde as instruções de instalação da gema estão deixando o caminho do dylib, mas é lento, pois eu nunca construí uma gema.
Vou postar mais se encontrar mais!
fonte
Eu tive esse mesmo problema há alguns dias. Eu finalmente consegui resolver isso. Não sei bem como, mas vou lhe contar o que fiz de qualquer maneira. Talvez isso ajude você.
Comecei baixando o RVM. Se você ainda não o estiver usando, recomendo fazê-lo. Ele basicamente cria uma sandbox para uma nova instalação separada do Ruby, RoR e RubyGems. De fato, você pode ter várias instalações simultaneamente e alternar instantaneamente entre si. Ele funciona como um encanto.
Por que isso é útil? Porque você não deve mexer com a instalação padrão do Ruby no OS X. O sistema depende disso. É melhor deixar a instalação padrão do Ruby e RoR em paz e criar uma nova usando o RVM que você possa usar para o seu próprio desenvolvimento.
Depois de criar minha instalação separada do Ruby, eu apenas instalei o RoR, RubyGems e mysql, e funcionou. Para as etapas exatas que tomei, veja minha pergunta: Instalando Rails, MySQL, etc. tudo dá errado
Novamente: não sei ao certo se isso resolverá o seu problema. Mas certamente fez o truque para mim e, de qualquer forma, o uso do RVM é altamente recomendável.
fonte
Eu ainda descobri que, com as soluções acima, não funcionava (por exemplo) com o plug-in Rails para TextMate. Eu recebi um erro semelhante (ao recuperar o esquema do banco de dados).
Então, o que fez é abrir o terminal:
Substitua mysql-5.5.8-osx10.6-x86_64 pelo seu próprio caminho (ou mysql).
Isso cria um link de símbolo para a lib, agora o rails é executado na linha de comando, assim como os plug-ins do TextMate, como ruby-on-rails-tmbundle .
Para ficar claro: isso também corrige o erro que você recebe ao iniciar o servidor rails.
fonte
Isso geralmente acontece quando você atualiza o mysql. A jóia do mysql2 instalada que foi construída nas bibliotecas mysql antigas não pode funcionar com novas bibliotecas. Só preciso reinstalá-lo.
Desinstale o mysql2 com
gem uninstall mysql2
. Em seguida, instale-o comgem install mysql2
fonte
Eu o resolvi criando o arquivo .rvmrc na pasta do meu projeto, contendo:
então entrando no caminho do meu projeto
então eu corro
fonte
Minha versão do comando luvlss:
Mac OSX 10.10.5
MySQL 5.6.27
Passageiro 5.0.21
sudo ln -s /usr/local/mysql-5.6.27-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Se você estiver tentando vários links diferentes, como eu, faça uma limpeza com:
sudo unlink /usr/lib/libmysqlclient.18.dylib
fonte
Abra um terminal e execute o seguinte:
Deveria funcionar.
fonte
Se você estiver usando o OSX e instalando o mysql usando o brew, poderá:
Se você está tendo problemas com a versão (eu tinha o mysql 5.7 em execução enquanto minha jóia exigia a 5.6.25), você pode
fonte
Para mim, eu tive que desinstalar manualmente o mysql
fonte