Pregunta

Quiero conectarme a MySQL desde SBCL usando CLSQL.Cargué CLSQL usando Quicklisp (ql:quickload 'clsql).Sin embargo, al llamar (clsql:connect '(...) :database-type :mysql), decía:

No se pudieron cargar las bibliotecas externas "libmysqlclient", "libmysql".(buscado en CLSQL-SYS:RUTAS DE BÚSQUEDA-BIBLIOTECA-EXTRANJERA).

Estoy en CentOS y básicamente lo que quiero hacer es

  1. Instale los encabezados de desarrollo del cliente MySQL con yum, para que UFFI pueda encontrarlo (cosa que no pude hacer)
  2. Después de la instalación, podrá conectarse al servidor MySQL local (creo que después de 1.Una vez hecho esto, podría estar funcionando automáticamente).

Actualmente estoy usando:

  • CentOS 5.7 final (32 bits)
  • SBCL 1.0.55
  • Quicklisp beta
  • repositorios yum:base, epel, extras, actualizaciones

No solo pregunté cómo instalar encabezados de desarrollo de MySQL en CentOS, porque eso resolvería solo una parte de mi problema, aún necesitaría saber qué falta en mi máquina.Tampoco intenté compilar libmysqlclient/libmysql desde la fuente, porque no sé si clsql podría encontrarlo o no.Yo creo que no.

Lo siento mucho si mi pregunta de alguna manera no entiende el punto, pero una búsqueda exhaustiva en Google no arrojó ningún resultado.Si alguien me dijera que no puede instalar encabezados de desarrollo de clientes mysql en CentOS, me reiría de ellos y les diría que usaran la búsqueda yum, pero no pude encontrarlo ni con yum ni en línea.

Conozco la solución para ubuntu (y Debian), porque hay un paquete cl-sql y también puedo encontrar fácilmente encabezados de MySQL allí, pero lo necesito en CentOS.

Gracias de antemano.

¿Fue útil?

Solución

de alguna manera, cuando intentas algo el tiempo suficiente, se hará;)

Esto es lo que hice si alguien necesita una respuesta y se tropieza con esta pregunta:

(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")

Por supuesto, puede reemplazar "/ USR / LIB / MYSQL" con una ruta diferente para las bibliotecas MySQL, si es necesario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top