Question

Je souhaite me connecter à MySQL depuis SBCL en utilisant CLSQL. J'ai chargé CLSQL en utilisant QuickLisp (QL: Quickload 'CLSQL). Cependant, lorsque vous appelez (CLSQL: Connect '(...): Type de base de données: MySQL), il a dit:

Impossible de charger des bibliothèques étrangères "libmysqlclient", "libmysql". (ClSQL-SYS recherché:Pathes de recherche de bibliothèque étrangère).

Je suis sur Centos, et fondamentalement ce que je veux faire est

  1. Installez les en-têtes de développement des clients MySQL avec YUM, afin que UFFI puisse le trouver (ce que je n'ai pas fait)
  2. Après l'installation, pouvoir vous connecter au serveur MySQL local (je pense qu'après 1. est terminé, cela pourrait fonctionner automatiquement).

J'utilise actuellement:

  • Centos 5.7 Final (32 bits)
  • SBCL 1.0.55
  • Bêta rapide
  • Référentiels de yum: base, ePel, extras, mises à jour

Je n'ai pas simplement demandé comment installer les en-têtes de développement MySQL sur CentOS, car cela ne résoudrait qu'une partie de mon problème, je devrais toujours savoir ce qui manque à ma machine. Je n'ai pas non plus essayé de construire libmysqlclient / libmysql de source, car je ne sais pas si CLSQL pourrait alors le trouver ou non. Je crois que non.

Je suis vraiment désolé si ma question manque en quelque sorte le point, mais une recherche approfondie n'a donné aucun résultat. Si quelqu'un me disait qu'ils ne pouvaient pas installer des en-têtes de développement de clients MySQL sur CentOS, je me moquerais d'eux et je leur dirais d'utiliser la recherche de Yum, mais je ne le trouvais pas non plus avec miam ni en ligne.

Je connais la solution pour Ubuntu (et Debian), car il y a un package CL-SQL et je peux facilement y trouver des en-têtes MySQL, mais j'en ai besoin sur CentOS.

Merci d'avance.

Était-ce utile?

La solution

D'une manière ou d'une autre, lorsque vous essayez quelque chose assez longtemps, cela se fera;)

Voici ce que j'ai fait si quelqu'un a besoin d'une réponse et trébuche sur cette question:

(ql:quickload 'clsql)

;tell clsql where to search for mysql libs
(push #P"/usr/lib/mysql" CLSQL-SYS:*FOREIGN-LIBRARY-SEARCH-PATHS*)

;add mysql libs to clsql library path [apparent from code :]
(clsql:push-library-path "/usr/lib/mysql/")

;directly tell uffi to load mysqlclient shared library
(uffi:load-foreign-library "/usr/lib/mysql/libmysqlclient.so")

Bien sûr, vous pouvez remplacer "/ usr / lib / mysql" par un chemin différent pour les bibliothèques MySQL, si nécessaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top