Saya telah berjuang dengan ini selama beberapa waktu.
Saya telah menginstal Rails 3, gem, mysql pada mesin Snow Leopard saya. Semua berjalan dengan baik sampai saya membuat proyek pertama saya dan mencoba menjalankannya
rails server
Saat menjalankan ini saya mendapatkan:
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$
Sejauh yang saya tahu masalahnya adalah dengan permata mysql2. MySQL tampaknya berjalan dengan baik dan referensi Gemfile saya mysql2, file database.yml saya juga tampak ok.
Kesalahan menyebutkan
Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
Dan lagi
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 ada di sana !?
Jika saya menggunakan permata mysql lama, WEBrick melakukan booting dengan baik. Tapi itu tidak ideal, kan?
Saya sudah mencoba semua yang bisa diberikan Google kepada saya! Setiap bantuan sangat dihargai.
sumber
/usr/lib
, tautan itu akan memutuskan ke lokasi di mana itu sebenarnya diinstal. Pada OS X, biasanya ada di bawah/usr/local/mysql/lib
, di mana perintah ini terhubung. Jika lib Anda dipasang di lokasi yang berbeda, Anda harus mengubah perintah ini. Ketiklocate libmysqlclient.18.dylib
dan gantikan hasilnya dengan argumen pertama setelahnya-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.
apa yang salah?sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
). Itu akan memulai proses pengindeksan hard drive Anda, yang akan membuatlocate
perintah bekerja di masa depan. Dalam kebanyakan kasus, meskipun, saya pikir Anda tidak perlu melakukan itu, dan hanya dapat menggunakan perintah yang disediakan luvls apa adanya.Saya telah menyelesaikan ini, akhirnya!
Saya menginstal ulang Ruby dan Rails di bawah RVM. Saya menggunakan Ruby versi 1.9.2-p136.
Setelah menginstal ulang di bawah rvm, kesalahan ini masih ada.
Pada akhirnya perintah ajaib yang menyelesaikannya adalah:
Semoga ini bisa membantu orang lain!
sumber
mysql2-0.2.6/lib/mysql2/mysql2.bundle
di mana permata Anda dipasang.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
Perbaikan ini bekerja sangat baik untuk saya:
Tambahkan berikut ini ke profil ~ /. Anda
http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/
sumber
Bagi saya ini hanya karena saya telah meningkatkan mysql tetapi belum memperbarui permata mysql2 - instal ulang permata akan memperbaikinya ...
gem pristine mysql2
sumber
Saya memiliki masalah yang sama. Sepertinya tidak dapat menemukan perpustakaan libmysqlclient. Perbaikan sementara yang berhasil bagi saya adalah sebagai berikut:
Saya tidak yakin di mana konfigurasi menentukan path load atau apa itu diatur tetapi instalasi mysql saya tampaknya tidak ada di dalamnya. Saya akan memposting lagi jika saya menemukan solusi yang lebih permanen.
Sunting: Sebenarnya perbaikan ini muncul untuk mengatasi masalah dengan lebih akurat.
sumber
Tambahkan di bawah ini ke
~/.bash_profile
:Ini berhasil untuk saya
sumber
Di pembaruan OSX El Capitan saat Anda melakukan ini:
itu melempar kesalahan seperti
Jadi untuk menghindari ini, apa yang dapat Anda lakukan adalah mencari terlebih dahulu
libmysqlclient.18.dylib
menggunakan perintahDalam kasus saya itu kembali
/usr/local/mysql-5.5.24-osx10.5-x86_64/lib/libmysqlclient.18.dylib
Jadi alih-alih
usr/lib/
kami akan membuat symlinkusr/local/lib/
seperti ini:Lebih detail: https://forums.developer.apple.com/thread/7935
sumber
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
/usr/local/lib
folderbaris berikut ini cocok untuk saya. Saya menggunakan mac 10.7.2.
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
sumber
Baru saja mengalami masalah ini. Yang harus saya lakukan adalah menghapus permata mysql2 dan menginstalnya kembali. Semoga ini berhasil untuk orang lain
sumber
All versions
di prompt. Saya kemudian menjalankan pembuatan upgrade mysql dan kemudian instal mysql2.Beginilah cara kerjanya untuk saya:
Saya menjalankan perintah di bawah ini
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~ / .rvm / permata / ruby-1.9.2-p180 / permata / mysql2-0.2.7 /lib/mysql2/mysql2.bundle
Lingkungan saya:
$ rails -v Rails 3.0.6
$ mysql --version
mysql Ver 14.14 Distrib 5.5.11, untuk osx10.6 (i386) menggunakan readline 5.1
$ ruby -v
ruby 1.9.2p180 (2011-02-18 revisi 30909) [x86_64-darwin10.7.0]
Semoga ini bisa membantu seseorang.
sumber
Terima kasih, Ogapo! Mengekspor alias itu bekerja untuk saya, dan kemudian saya mengikuti tautannya, dan dalam kasus saya mysql2.bundle sudah ada di /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle jadi Saya menyesuaikan install_name_tool untuk memodifikasi bundel itu daripada satu di ~ / .rvm dan mendapatkan cara kerjanya yang seharusnya dilakukan.
Jadi sekarang:
sumber
hai itu berhasil untuk saya dari tautan yang disarankan dari Fredy Andersen
hanya harus mengubah ke versi mysql saya, dalam perintah, terima kasih
sumber
Saya memecahkan masalah ini dengan menghapus gemset saya untuk proyek saya saat ini dan membuatnya kembali dan menginstal ulang paket bundel. Saya rasa saya menyebabkannya dengan menginstal versi mysql yang lebih baru.
sumber
Saya mempunyai masalah ini ketika bekerja dengan Django, saya gunakan
brew
untuk menginstal banyak program Open Source saya dan saya perlu melakukan hal berikut sejak saya dulubrew
menginstalmysql
:Pastikan untuk mengganti dengan versi perpustakaan Anda!
sumber
bundle install mysql --force
membantuku. Itu menginstal ulang dependensi yang hilang sebagai akibat daribrew uninstall mysql
.sumber
Unknown switches '--force'
Jonty, aku juga berjuang dengan ini.
Saya pikir ada petunjuk di sini:
Perhatikan jalan menuju dylib itu, eh, agak pendek?
Saya mencoba mencari tahu di mana instruksi pemasangan permata meninggalkan jalur dylib, tetapi lambat karena saya belum pernah membuat permata sendiri.
Saya akan memposting lebih banyak jika saya menemukan lebih banyak!
sumber
Saya punya masalah yang sama persis beberapa hari yang lalu. Saya akhirnya berhasil menyelesaikannya. Saya tidak begitu yakin bagaimana, tetapi saya akan memberi tahu Anda apa yang saya lakukan. Mungkin itu akan membantu Anda.
Saya mulai dengan mengunduh RVM. Jika Anda belum menggunakannya, saya sangat merekomendasikan melakukannya. Ini pada dasarnya menciptakan kotak pasir untuk instalasi terpisah baru dari Ruby, RoR dan RubyGems. Bahkan, Anda dapat memiliki beberapa instalasi secara bersamaan dan langsung beralih ke yang lain. Itu bekerja seperti pesona.
Mengapa ini berguna? Karena Anda tidak boleh main-main dengan instalasi Ruby default di OS X. Sistem tergantung padanya. Yang terbaik adalah membiarkan instalasi Ruby dan RoR default saja dan membuat yang baru menggunakan RVM yang dapat Anda gunakan untuk pengembangan Anda sendiri.
Setelah saya membuat instalasi Ruby terpisah, saya baru saja menginstal RoR, RubyGems dan mysql, dan itu berhasil. Untuk langkah-langkah tepat yang saya ambil, lihat pertanyaan saya: Menginstal Rails, MySQL, dll. Semuanya salah
Sekali lagi: Saya tidak tahu pasti ini akan menyelesaikan masalah Anda. Tapi itu tentu saja trik untuk saya, dan dalam hal apapun menggunakan RVM sangat dianjurkan.
sumber
Saya masih menemukan bahwa dengan solusi di atas, tidak berfungsi (misalnya) dengan plugin Rails untuk TextMate. Saya mendapat kesalahan serupa (saat mengambil skema basis data).
Jadi yang dilakukan adalah, buka terminal:
Ganti mysql-5.5.8-osx10.6-x86_64 dengan jalur Anda sendiri (atau mysql).
Ini membuat tautan simbol ke lib, sekarang rel berjalan dari baris perintah, dan juga plugin TextMate seperti ruby-on-rails-tmbundle .
Untuk menjadi jelas: ini juga memperbaiki kesalahan yang Anda dapatkan saat memulai rails server.
sumber
Ini biasanya terjadi ketika Anda meningkatkan mysql. Permata mysql2 yang terinstal yang dibangun di atas lib mysql lama tidak dapat bekerja dengan lib baru. Hanya perlu menginstalnya kembali.
Hapus instalan mysql2 dengan
gem uninstall mysql2
. Kemudian instal dengangem install mysql2
sumber
Saya telah mengatasinya dengan membuat file .rvmrc di folder proyek saya yang terdiri dari:
kemudian memasuki jalur proyek saya
lalu aku lari
sumber
Versi perintah luvlss saya:
Mac OSX 10.10.5
MySQL 5.6.27
Penumpang 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
Jika Anda mencoba banyak tautan berbeda, seperti yang saya lakukan, lakukan pembersihan dengan:
sudo unlink /usr/lib/libmysqlclient.18.dylib
sumber
Buka Terminal dan jalankan yang berikut:
Itu harus bekerja.
sumber
Jika Anda menggunakan OSX dan menginstal mysql menggunakan brew, Anda dapat:
Jika Anda mengalami masalah dengan versi (saya menjalankan mysql 5.7 sementara permata saya diperlukan 5.6.25), Anda dapat
sumber
Bagi saya, saya harus menghapus instalan mysql secara manual
sumber