我想使用CLSQL从SBCL连接到MySQL。我使用quicklisp(ql:quickload'clsql)加载了CLSQL。但是,在调用时(clsql:connect'(...):database-type:mysql),它说:
无法加载外部库“libmysqlclient”,“libmysql”。 (搜索了CLSQL-SYS: FOREIGN-LIBRARY-SEARCH-PATHS )。
我在CentOS上,基本上我想做的是
我目前正在使用:
我不只是询问如何在CentOS上安装MySQL开发头文件,因为这只能解决我的部分问题,我仍然需要知道我的机器上缺少什么。我也没有尝试从源代码构建libmysqlclient / libmysql,因为我不知道clsql是否能够找到它。我想不是。
如果我的问题不知何故错过了这一点,我真的很抱歉,但广泛的谷歌搜索没有产生任何结果。如果有人告诉我他们无法在CentOS上安装mysql客户端开发头文件,我会嘲笑他们并告诉他们使用yum搜索,但我无法在网上找到yum。
我知道ubuntu(和debian)的解决方案,因为有一个cl-sql包,我也可以在那里轻松找到mysql头,但我需要它在CentOS上。
提前致谢。
答案 0 :(得分: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库路径。