MySQL配置不当:解决“不安全使用相对路径”错误
当使用Django运行Python的manage.py runserver时,您可能会遇到以下问题:遇到臭名昭著的错误:
“配置不正确:加载 MySQLdb 模块时出错:dlopen([path to _mysql.so], 2): 库未加载:libmysqlclient.18.dylib 原因:相对 rpath libmysqlclient 的使用不安全。 [_mysql.so] 中的 18.dylib 具有受限制的二进制文件“
原因:
在 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.mysql/lib/. 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中文网其他相关文章!