我想使用clsql从sbcl连接到mysql。我使用QuickLisp(QL:QuickLoad'Clsql)加载了CLSQL。但是,在调用时(clsql:connect'(...):数据库类型:mysql),它说:

无法加载外部库“libmysqlclient”,“libmysql”。 (搜索CLSQL-SYS:外语 - 搜索路径)。

我在Centos,基本上我想做的是

  1. 用yum安装mysql客户端开发标题,所以uffi可以找到它(我未能做的)
  2. 安装后,能够连接到本地MySQL服务器(我思考1.完成后,它可以自动工作)。

    我目前正在使用:

    • CentOS 5.7 Final(32位)
    • sbcl 1.0.55
    • Quicklisp Beta
    • yum存储库:基础,epel,额外,更新

      我不只是询问如何在CentOS上安装MySQL Development标题,因为这将只解决我的问题的一部分,我仍然需要知道我的机器中缺少的内容。我也没有尝试从源中建立libmysqlclient / libmysql,因为我不知道clsql是否能够找到它。我想不是。

      我真的很抱歉,如果我的问题,以某种方式错过了这一点,但大量的谷歌曲并没有产生任何结果。如果有人告诉我,他们无法在CentOS上安装MySQL客户端开发标题,我会嘲笑他们并告诉他们使用yum搜索,但我既无法在yum既不在线找到它。

      我知道Ubuntu(和debian)的解决方案,因为有一个cl-sql包,我也可以在那里轻松找到mysql标题,但我需要它在CentOS上。

      提前感谢。

有帮助吗?

解决方案

以某种方式,当你尝试足够长的东西时,它会完成;)

这是我所做的,如果有人需要答案并绊倒这个问题:

(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")
. 当然,如果需要,您可以用不同的路径替换“/ usr / lib / mysql”,如果需要,可以为mysql库。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top