Maison > base de données > tutoriel mysql > Comment corriger l'erreur « Utilisation dangereuse du chemin relatif libmysqlclient.18.dylib » sur macOS El Capitan ?

Comment corriger l'erreur « Utilisation dangereuse du chemin relatif libmysqlclient.18.dylib » sur macOS El Capitan ?

Susan Sarandon
Libérer: 2024-10-25 11:07:30
original
591 Les gens l'ont consulté

How to Fix the

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 :

  1. Ouvrez le terminal.
  2. Assurez-vous que libmysqlclient.18.dylib se trouve dans /usr/local/ mysql/lib/.
  3. Exécutez la commande suivante, en remplaçant les chemins en conséquence :
sudo install_name_tool -change libmysqlclient.18.dylib \
  /usr/local/mysql/lib/libmysqlclient.18.dylib \
  /Library/Python/2.7/site-packages/_mysql.so
Copier après la connexion

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
Copier après la connexion
  1. Entrez votre mot de passe lorsque vous y êtes invité.
  2. Réessayez d'exécuter Python manage.py runserver pour confirmer que le problème est résolu.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal