MySQL mal configuré : résolution de l'erreur « utilisation dangereuse du chemin relatif »
Lors de l'exécution du serveur d'exécution manage.py de Python avec Django, vous pouvez rencontrez la fameuse erreur :
"ImproperlyConfigured : Erreur de chargement du module MySQLdb : dlopen([chemin vers _mysql.so], 2) : Bibliothèque non chargée : libmysqlclient.18.dylib Raison : utilisation dangereuse du rpath relatif libmysqlclient. 18.dylib dans [_mysql.so] avec binaire restreint"
Cause :
Dans macOS El Capitan (10.11), Apple a introduit la protection de l'intégrité du système, qui restreint les fichiers protégés des programmes comme MySQL d'appeler des bibliothèques partagées avec des références relatives à d'autres bibliothèques. Il s'agit d'un problème car _mysql.so, une bibliothèque partagée requise par MySQLdb, contient une référence relative à libmysqlclient.18.dylib.
Solution :
Jusqu'à ce que la bibliothèque est mis à jour, vous pouvez le forcer à utiliser une référence absolue à l'aide de l'utilitaire 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
Exemple :
En supposant que libmysqlclient. 18.dylib se trouve dans /Users/Applications/My_Applications/MySQL/lib/, la commande serait :
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
Remarque :
Cette solution peut ne pas fonctionner tant que vous n'avez pas mis à jour vers une version plus récente de MySQL prenant en charge Mesures de sécurité de macOS El Capitan.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!