1

CLSQL を使用して SBCL から MySQL に接続したいと考えています。quicklisp (ql:quickload 'clsql) を使用して CLSQL をロードしました。ただし、 (clsql:connect '(...) :database-type :mysql) を呼び出すと、次のように表示されます。

外部ライブラリ「libmysqlclient」、「libmysql」をロードできませんでした。(CLSQL-SYS: FOREIGN-LIBRARY-SEARCH-PATHS を検索)。

私はCentOSを使用していますが、基本的にやりたいことは

  1. UFFIがそれを見つけることができるように、yumを使用してmysqlクライアント開発ヘッダーをインストールします(これは失敗しました)
  2. インストール後、ローカルMySQLサーバーに接続できるようになります(1.が完了すると、自動的に機能する可能性があると思います)。

私は現在使用しています:

  • CentOS 5.7 最終版 (32 ビット)
  • SBCL 1.0.55
  • Quicklisp ベータ版
  • yum リポジトリー: base、epel、extras、updates

CentOS に MySQL 開発ヘッダーをインストールする方法について質問しただけではありません。それは私の問題の一部しか解決しないためです。マシンに何が欠けているかを知る必要があります。また、ソースから libmysqlclient/libmysql をビルドしようとはしませんでした。clsql がそれを見つけられるかどうかわからないからです。ないと思います。

私の質問がどういうわけか要点を逃した場合は本当に申し訳ありませんが、大規模なグーグル検索では結果が得られませんでした. CentOS に mysql クライアント開発ヘッダーをインストールできないと誰かが私に言ったら、私は彼らを笑って yum 検索を使用するように言いますが、yum でもオンラインでも見つけることができませんでした。

cl-sqlパッケージがあり、そこにもmysqlヘッダーを簡単に見つけることができるため、ubuntu(およびdebian)のソリューションを知っていますが、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 に答える