如何修复 macOS El Capitan 上的'不安全使用相对 rpath libmysqlclient.18.dylib”错误?

Susan Sarandon
发布: 2024-10-25 11:07:30
原创
500 人浏览过

How to Fix the

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 实用程序强制它使用绝对引用:

  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.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
登录后复制
  1. 出现提示时输入密码。
  2. 重试运行 python

注意:

此解决方案可能不起作用,除非您更新到支持的较新版本的 MySQL macOS El Capitan 的安全措施。

以上是如何修复 macOS El Capitan 上的'不安全使用相对 rpath libmysqlclient.18.dylib”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!