Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Membetulkan Ralat \"penggunaan tidak selamat relatif rpath libmysqlclient.18.dylib\" pada macOS El Capitan?

Bagaimana untuk Membetulkan Ralat \"penggunaan tidak selamat relatif rpath libmysqlclient.18.dylib\" pada macOS El Capitan?

Susan Sarandon
Susan Sarandonasal
2024-10-25 11:07:30501semak imbas

How to Fix the

MySQL Tidak Dikonfigurasikan dengan betul: Menangani Ralat "penggunaan laluan relatif yang tidak selamat"

Apabila menjalankan runserver manage.py Python dengan Django, anda boleh hadapi ralat yang terkenal:

"ImproperlyConfigured: Ralat memuatkan modul MySQLdb: dlopen([path to _mysql.so], 2): Library tidak dimuatkan: libmysqlclient.18.dylib Sebab: penggunaan rpath relatif libmysqlclient yang tidak selamat. 18.dylib dalam [_mysql.so] dengan binari terhad"

Punca:

Dalam macOS El Capitan (10.11), Apple memperkenalkan Perlindungan Integriti Sistem, yang menyekat perlindungan program seperti MySQL daripada memanggil perpustakaan kongsi dengan rujukan relatif kepada perpustakaan lain. Ini adalah isu kerana _mysql.so, perpustakaan kongsi yang diperlukan oleh MySQLdb, mengandungi rujukan relatif kepada libmysqlclient.18.dylib.

Penyelesaian:

Sehingga perpustakaan dikemas kini, anda boleh memaksanya untuk menggunakan rujukan mutlak menggunakan utiliti install_name_tool:

  1. Buka Terminal.
  2. Pastikan libmysqlclient.18.dylib terletak di /usr/local/ mysql/lib/.
  3. Laksanakan arahan berikut, menggantikan laluan dengan sewajarnya:
sudo install_name_tool -change libmysqlclient.18.dylib \
  /usr/local/mysql/lib/libmysqlclient.18.dylib \
  /Library/Python/2.7/site-packages/_mysql.so

Contoh:

Andaikan libmysqlclient. 18.dylib terletak di /Users/Applications/My_Applications/MySQL/lib/, arahannya ialah:

sudo install_name_tool -change libmysqlclient.18.dylib \
  /Users/Applications/My_Applications/MySQL/lib/libmysqlclient.18.dylib \
  /Library/Python/2.7/site-packages/_mysql.so
  1. Masukkan kata laluan anda apabila digesa.
  2. Cuba jalankan semula python manage.py runserver untuk mengesahkan isu telah diselesaikan.

Nota:

Penyelesaian ini mungkin tidak berfungsi sehingga anda mengemas kini kepada versi MySQL yang lebih baharu yang menyokong langkah keselamatan macOS El Capitan.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \"penggunaan tidak selamat relatif rpath libmysqlclient.18.dylib\" pada macOS El Capitan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn