Saya baru mulai dengan Ruby (dan rel). Saya melakukan pengaturan sesuai dengan http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:ruby gems, menggunakan rvm
. Saya memiliki semuanya bekerja dengan baik dengan sqlite.
Sekarang saya ingin mencoba mengubah banyak hal ke MySQL, karena itulah yang saya lakukan sebagian besar pengembangan saya. Di Gemfile saya, saya telah mengganti sqlite dengan mysql2:
group :development, :test do
# gem 'sqlite3', '1.3.5'
gem 'mysql2'
gem 'rspec-rails', '2.9.0'
end
Tetapi ketika saya mencoba membuat DB untuk rel di MySQL saya mendapatkan:
$ 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
Saya telah melihat posting lain yang merekomendasikan menginstal ulang MySQL melalui homebrew (milik saya diinstal melalui DMG yang dapat diunduh), tetapi saya lebih memilih untuk tidak melakukannya karena saya sudah memiliki beberapa database lain di sana untuk proyek non-ruby lainnya.
Saya sebenarnya memiliki file yang dicari Rails; itu dipasang di /usr/local/mysql/lib/libmysqlclient.18.dylib
. Apa cara terbaik untuk memberi tahu Rails cara menemukannya?
sumber
Jawaban:
Solusinya cukup mudah; Tambahkan jalur perpustakaan di file ~ / .bash_profile atau ~ / .profile Anda:
Jika masih tidak berfungsi (ini berfungsi untuk saya):
Ada banyak blog dengan
install_name_tool
, yang tidak akan berfungsi untuk saya karena saya menggunakan OSX Lion:sumber
.bash_profile
tidak benar-benar berlaku.usr/lib
lagi tetapi symlink keusr/local/lib
akan berfungsi:sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Di El Capitan saya punya
ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted
Di El Capitan
/usr/lib/
sekarang memiliki bendera terbatas dan tidak dapat ditulis tanpa menonaktifkan keamanan jadi saya hanya memasukkan tautannya/usr/local/lib
saja.Server Rails berfungsi dengan baik lagi.
sumber
Sementara judul pertanyaan ini menjelaskan dengan tepat masalah yang saya hadapi, situasinya berbeda dari yang dijelaskan dalam jawaban sebelumnya, begitu pula solusinya.
Dalam kasus saya (El Capitan, mysql diinstal melalui homebrew),
brew update && brew upgrade
menyebabkan paket mysql ditingkatkan ke 5.7.10 (dari 5.6.x).Peningkatan tersebut menyebabkan
libmysqlclient.18.dylib
diganti denganlibmysqlclient.20.dylib
, tetapimysql2
permata itu masih mengandalkan yang pertama.Untuk memperbaiki masalah yang saya lakukan:
gem uninstall mysql2 && gem install mysql2
Harap dicatat bahwa masalah serupa dapat terjadi dengan perpustakaan yang dikelola homebrew berbeda ( lihat jawaban saya sendiri untuk ini, misalnya )
sumber
pip uninstall mysqlclient
danpip install mysqlclient
juga bekerja.Itu berhasil untuk saya. Saya menginstal MySQL dari file dmg.
sumber
Bekerja untuk saya. Semua yang serupa tidak.
sumber
Saya mengalami masalah ini setelah penghapusan lengkap dan kemudian instalasi baru MySQL. Secara khusus:
Saya bahkan belum menyentuh aplikasi Rails saya.
Menginstal ulang
mysql2
permata memecahkan masalah ini.[MySQL 5.7.10, Rails 4.0.0, Ruby 2.0.0, Mac OS X Yosemite 10.10]
sumber
Jika Anda menggunakan MySQL yang diinstal dari HomeBrew di El Capitan, Anda harus menautkannya sebagai berikut:
sumber
Untuk MySql 5.6 diinstal dari DMG di Mavericks
sumber
Saya konfirmasi patch dari Abhishek melakukan pekerjaan.
ini juga berlaku untuk Yosemite.
catatan: daripada menautkan ke versi tertentu dari mysql, gunakan fakta mysql sudah membangun symlink:
solusi ini berfungsi untuk Xcode dan C API.
sumber
Bagi mereka yang menggunakan minuman keras. Cukup tautkan versi mysql Anda dengan opsi "--force".
sumber
brew link [email protected] --force
. Bekerja dengan sempurna.Untuk memastikan symlink apa yang dibutuhkan (tergantung versi mysql dan versi os):
sehingga :
sumber
Ini bekerja untuk saya:
sumber
ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Saya menggunakan Rails REE (2.3.4) untuk sistem lama yang kami miliki. Setelah memutakhirkan ke El Capitan, menjalankan skrip / konsol menghasilkan kesalahan dan aplikasi saya tidak lagi mulai (menggunakan pow):
Dari utas ini, di atas, saya memutuskan bahwa saya perlu mengeluarkan perintah ini di terminal:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Perintah ini menghasilkan kesalahan: "ln: /usr/lib/libmysqlclient.18.dylib: Operasi tidak diizinkan". Saya belum pernah melihat kesalahan itu sebelumnya.
Setelah sedikit menggali, saya menemukan artikel ini: http://www.macworld.com/article/2986118/security/how-to-modify-system-integrity-protection-in-el-capitan.html dan mengikuti instruksi untuk mematikan SIP (Perlindungan Integritas Sistem baru dari El Capitan). Setelah mematikan SIP, dan setelah reboot, perintah ln bekerja dengan baik. Lalu saya mematikan SIP. Sekarang semuanya baik-baik saja. Aplikasi saya berjalan lagi menggunakan pow dan tidak ada kesalahan menjalankan skrip / konsol. Saya harap ini membantu Anda.
sumber
Di Mac Sierra jika menggunakan Homebrew lakukan:
sumber
dan
bekerja untuk saya.
sumber
Ini berhasil untuk saya. Yang harus saya lakukan adalah menghapus mysql2 gem dan menginstalnya lagi menggunakan perintah di bawah ini
sumber
Saya menggunakan Mac OS, dan saya terjebak dengan bug ini bahkan setelah mencopot / menghapus semua mysql dan MAMP. Sebelumnya, saya menginstal
brew install mysql
dan juga menggunakanMAMP
. tautan lunak addling tidak berhasil untuk saya.Itu hanya diselesaikan dengan menghapus semua mysql yang ada. dan kemudian instal mysql melalui MySQL dari sini .
sumber
gunakan ini dari baris perintah Anda:
dicoba di beberapa komputer dengan maverick selalu bekerja
sumber
Jika Anda menggunakan Bitnami RubyStack dan mengalami masalah serupa. Coba yang ini
sumber
Masalah saya dengan memuat file bundel itu adalah symlink yang buruk. Jadi periksa tautannya, dan ganti dengan yang baru jika perlu. Semuanya jatuh pada tempatnya pada saat itu. Tidak yakin bagaimana itu terjadi, tapi itu terjadi. Pertama kali terjadi kesalahan sintaks seperti itu.
sumber
Saya bekerja dengan perintah model g rails dan saya mendapatkan kesalahan ini:
Saya telah mencoba ini dan itu berfungsi untuk saya. Saya menggunakan Mavericks 10.9.5
Terima kasih!
Sekarang saya menggunakan Yosemite 10.10.5 dan saya mendapatkan kesalahan yang sama, jadi saya baru saja menjalankan perintah ini di terminal dan berhasil diperbaiki.
Anda juga bisa mencoba:
Keduanya bekerja dengan baik untuk saya. Semoga bisa bermanfaat!
sumber
Saya mendapat masalah ini "Library tidak dimuat: libmysqlclient.18.dylib" saat mengimpor MySQLdb dari MySQL Untuk python3 :
Solusi berfungsi untuk saya: Mac OS X 10.11.1 Python3.5
sumber
Satu-satunya hal yang berhasil bagi saya adalah:
Ganti jalur mysql dan permata agar sesuai dengan sistem Anda.
sumber
Setelah banyak googling dan mencoba semua di atas ... satu-satunya hal yang memecahkan masalah saya adalah perintah ini:
Saya menggunakan macbook pro, OSX 10 El Capitan. Darwin xxxx-MacBook-Pro.local 15.6.0 Versi Kernel Darwin 15.6.0: Kam 23 Jun 18:25:34 PDT 2016; XXX: xnu-3248.60.10 ~ 1 / RELEASE_X86_64 x86_64 Perl: v5.18.2 Mysql: 5.6.19
sumber
Terima kasih. Pembaruan Homebrew membuat aplikasi Rails saya bermasalah di Mac saya. Saya menginstal ulang MySQL (5.7) dari sumber, lalu saya harus melakukan ini
berdasarkan apa yang saya baca di atas, dan di Gemfile saya
dan di database.yml
sumber
Sudah banyak jawaban untuk pertanyaan ini, terutama yang satu ini https://stackoverflow.com/a/10847618/5515861 . Saya hanya ingin menambahkan beberapa catatan. Jika Anda menggunakan Mac, saya tidak tahu bagaimana Anda menginstal MySQL, tetapi hal pertama yang harus diselidiki adalah di mana letak instalasi MySQL Anda. Bagi saya, MySQL diinstal menggunakan
brew
for version5.7
, dan lokasinya/usr/local/opt/[email protected]/
, jadi tambahkan berikut ini ke my~/.zshrc
.Semoga Anda memperbaiki masalah Anda 😁
sumber