mysql - CentOS 上的 CLSQL 安装

标签 mysql lisp centos sbcl clsql

我想使用 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、extras、updates

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

如果我的问题不知何故没有捕获要点,我真的很抱歉,但是广泛的谷歌搜索没有产生任何结果。如果有人告诉我他们不能在 CentOS 上安装 mysql 客户端开发头文件,我会 mock 他们并告诉他们使用 yum 搜索,但我既没有用 yum 也没有在网上找到它。

我知道 ubuntu(和 debian)的解决方案,因为有一个 cl-sql 包,我也可以在那里轻松找到 mysql header ,但我在 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")

当然,如果需要,您可以用不同的 mysql 库路径替换“/usr/lib/mysql”。

关于mysql - CentOS 上的 CLSQL 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9430575/

相关文章:

php - 数据库连接和模具问题

mysql - Azure 网站中间歇性出现 MySQL 连接错误

mysql - 左连接外键

mysql - 如何设置包含完整时间戳的列等于时间戳的一部分的 SQL 查询

algorithm - 逆向算法LISP的实现

macros - 为什么在这个宏定义中需要@符号?

c - 编程语言名称的历史?

javascript - SequelizeDatabaseError : You need JSON-C for ST_GeomFromGeoJSON when I have JSON-C installed on centos

MySQL 5.1升级到5.5报错

php - 使用任何 PHP 类和 Skype 协议(protocol),通过 PHP 向 SkypeID 发送聊天消息,无需安装 Skype Messenger