1

我想使用 CLSQL 从 SBCL 连接到 MySQL。我使用 quicklisp (ql:quickload 'clsql) 加载了 CLSQL。但是,当调用 (clsql:connect '(...) :database-type :mysql) 时,它说:

无法加载外部库“libmysqlclient”、“libmysql”。(搜索 CLSQL-SYS: FOREIGN-LIBRARY-SEARCH-PATHS)。

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

  1. 用yum安装mysql客户端开发头文件,这样UFFI就能找到(我没做)
  2. 安装后,能够连接到本地 MySQL 服务器(我认为 1. 完成后,它可以自动工作)。

我目前正在使用:

  • CentOS 5.7 最终版(32 位)
  • SBCL 1.0.55
  • Quicklisp 测试版
  • yum 存储库:base、epel、extra、更新

我不只是询问如何在 CentOS 上安装 MySQL 开发头文件,因为这只能解决我的部分问题,我仍然需要知道我的机器缺少什么。我也没有尝试从源代码构建 libmysqlclient/libmysql,因为我不知道 clsql 是否能够找到它。我想不是。

如果我的问题以某种方式错过了重点,我真的很抱歉,但是广泛的谷歌搜索没有产生任何结果。如果有人告诉我他们不能在 CentOS 上安装 mysql 客户端开发头文件,我会嘲笑他们并告诉他们使用 yum 搜索,但我在 yum 和在线都找不到它。

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

提前致谢。

4

1 回答 1

1

不知何故,当您尝试足够长的时间时,它就会完成;)

如果有人需要答案并偶然发现这个问题,这就是我所做的:

(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 库的不同路径。

于 2012-02-27T12:51:02.733 回答