ホームページ  >  記事  >  データベース  >  macOS El Capitan での「相対 rpath libmysqlclient.18.dylib の安全でない使用」エラーを修正する方法

macOS El Capitan での「相対 rpath libmysqlclient.18.dylib の安全でない使用」エラーを修正する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-25 11:07:30501ブラウズ

How to Fix the

MySQL の不適切な構成: 「相対パスの安全でない使用」エラーへの対処

Django で Python の manage.py 実行サーバーを実行する場合、次のような問題が発生する可能性があります。悪名高いエラーが発生しました:

"ImproperlyConfigured: MySQLdb モジュールのロード中にエラーが発生しました: dlopen([_mysql.so へのパス], 2): ライブラリがロードされていません: libmysqlclient.18.dylib 理由: 相対 rpath libmysqlclient の安全でない使用。 18.dylib in [_mysql.so] with制限されたバイナリ

原因:

macOS El Capitan (10.11) では、Apple はシステム整合性保護を導入しました。 MySQL などのプログラムは、他のライブラリへの相対参照を使用して共有ライブラリを呼び出すことができません。これは、MySQLdb に必要な共有ライブラリである _mysql.so に libmysqlclient.18.dylib への相対参照が含まれているため問題になります。

解決策:

ライブラリが完成するまでが更新された場合は、install_name_tool ユーティリティを使用して絶対参照を強制的に使用できます。

  1. ターミナルを開きます。
  2. libmysqlclient.18.dylib が /usr/local/ にあることを確認します。 mysql/lib/.
  3. 次のコマンドを実行し、パスを適宜置き換えます。
sudo install_name_tool -change libmysqlclient.18.dylib \
  /usr/local/mysql/lib/libmysqlclient.18.dylib \
  /Library/Python/2.7/site-packages/_mysql.so

例:

libmysqlclient と仮定します。 18.dylib は /Users/Applications/My_Applications/MySQL/lib/ にあり、コマンドは次のようになります:

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. プロンプトが表示されたらパスワードを入力してください。
  2. Python の実行を再試行しますmanage.py runserver を実行して、問題が解決されたことを確認します。

注:

この解決策は、サポートする MySQL の新しいバージョンに更新するまで機能しない可能性があります。 macOS El Capitan のセキュリティ対策。

以上がmacOS El Capitan での「相対 rpath libmysqlclient.18.dylib の安全でない使用」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。