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 ユーティリティを使用して絶対参照を強制的に使用できます。
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
注:
この解決策は、サポートする MySQL の新しいバージョンに更新するまで機能しない可能性があります。 macOS El Capitan のセキュリティ対策。
以上がmacOS El Capitan での「相対 rpath libmysqlclient.18.dylib の安全でない使用」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。